• Arduino nasıl program yazılır? Programlama dilleri

    Program nelerden oluşuyor?

    Başlangıç ​​olarak, bir programın bir kitap gibi okunamayacağını ve yazılamayacağını anlamakta fayda var: kapaktan kapağa, yukarıdan aşağıya, satır satır. Herhangi bir program ayrı bloklardan oluşur. C/C++'da bir kod bloğunun başlangıcı sol küme paranteziyle (, sonu ise sağ küme paranteziyle) gösterilir.

    Farklı blok türleri vardır ve dış koşullara bağlı olarak hangisinin yürütüleceği. Minimal program örneğinde 2 blok görebilirsiniz. Bu örnekte bloklar çağrılıyor bir fonksiyon tanımlamak. Bir işlev, birisinin daha sonra dışarıdan kullanabileceği, belirli bir ada sahip bir kod bloğudur.

    Bu durumda setup ve loop adında 2 fonksiyonumuz var. Arduino için herhangi bir C++ programında bunların varlığı zorunludur. Bizim durumumuzda olduğu gibi hiçbir şey yapmayabilirler ama yazılmaları gerekir. Aksi takdirde derleme aşamasında hata alırsınız.

    Türün klasiği: yanıp sönen LED

    Şimdi programımızı tamamlayalım ki en azından bir şeyler olsun. Arduino'da pin 13'e bir LED bağlanır. Kontrol edilebilir, biz de bunu yapacağız.

    void setup() ( pinMode(13 , OUTPUT) ; ) void loop() ( digitalWrite(13 , YÜKSEK) ; gecikme(100 ); digitalWrite(13 , DÜŞÜK) ; gecikme(900 ) ; )

    Programı derleyin ve indirin. Kart üzerindeki LED’in saniyede bir yanıp söndüğünü göreceksiniz. Bu kodun neden her saniye yanıp sönmeye yol açtığını bulalım.

    Her ifade, işlemciye bir şey yapması için verilen bir emirdir. Bir blok içindeki ifadeler, herhangi bir duraklama veya geçiş olmaksızın, kesinlikle sırayla, birbiri ardına yürütülür. Yani belirli bir kod bloğundan bahsediyorsak, ne yapıldığını anlamak için yukarıdan aşağıya doğru okunabilir.

    Şimdi blokların hangi sırayla yürütüldüğünü anlayalım, yani. Kurulum ve döngü fonksiyonları. Henüz belirli ifadelerin ne anlama geldiği konusunda endişelenmeyin, yalnızca sırayı izleyin.

      Arduino açıldığında, yanıp söndüğünde veya RESET butonuna basıldığında “bir şey” ortaya çıkar. bir işlevi çağırır kurmak. Yani içindeki ifadeleri çalıştırılmaya zorlar.

      Kurulum tamamlanır tamamlanmaz “bir şey” hemen döngü fonksiyonunu çağırır.

      Döngü tamamlanır tamamlanmaz, "bir şey" hemen döngü fonksiyonunu tekrar çağırır ve bu böyle sonsuza kadar devam eder.

    İfadeleri yürütülme sırasına göre numaralandırırsak şunu elde ederiz:

    void setup() ( pinMode(13 , OUTPUT) ; ❶ ) void loop() ( digitalWrite(13 , YÜKSEK) ; ❷ ❻ ❿ gecikme(100 ) ; ❸ ❼ … digitalWrite(13 , LOW) ; ❹ ❽ gecikme(900 ) ; ❺ ❾ )

    Programın tamamını yukarıdan aşağıya okuyarak algılamaya çalışmamanız gerektiğini bir kez daha hatırlatalım. Yukarıdan aşağıya doğru sadece blokların içerikleri okunur. Genel olarak setup ve loop bildirimlerinin sırasını değiştirebiliriz.

    void loop() ( digitalWrite(13 , YÜKSEK) ; ❷ ❻ ❿ gecikme(100 ) ; ❸ ❼ … digitalWrite(13 , DÜŞÜK) ; ❹ ❽ gecikme(900 ) ; ❺ ❾ ) void setup() ( pinMode(13 , OUTPUT) ) ; ❶ )

    Bunun sonucu bir nebze bile değişmeyecek: derlemeden sonra kesinlikle eşdeğer bir ikili dosya alacaksınız.

    İfadeler Ne İşe Yarar?

    Şimdi yazılı programın neden sonuçta LED'in yanıp sönmesine neden olduğunu anlamaya çalışalım.

    Bildiğiniz gibi Arduino pinleri hem çıkış hem de giriş olarak çalışabiliyor. Bir şeyi kontrol etmek yani sinyal vermek istediğimizde kontrol pinini çıkış durumuna getirmemiz gerekir. Örneğimizde 13. pindeki LED’i kontrol ediyoruz, dolayısıyla kullanmadan önce 13. pinin çıkış yapılması gerekiyor.

    Bu, kurulum işlevindeki bir ifadeyle yapılır:

    PinMode(13 , ÇIKIŞ) ;

    İfadeler farklı olabilir: aritmetik, bildirimler, tanımlar, koşullar vb. Bu durumda ifadede uygularız işlev çağrısı. Hatırlamak? Sahibiz onların"bir şey" dediğimiz bir şey tarafından çağrılan kurulum ve döngü işlevleri. Peki şimdi Biz zaten bir yerde yazılmış olan fonksiyonları çağırıyoruz.

    Kurulumumuzda özellikle pinMode adlı bir işlevi çağırıyoruz. Sayıyla belirtilen pini belirtilen moda ayarlar: giriş veya çıkış. Hangi pinden, hangi moddan bahsettiğimizi fonksiyon adından hemen sonra virgülle ayırarak parantez içinde belirtiyoruz. Bizim durumumuzda 13. pinin çıkış görevi görmesini istiyoruz. ÇIKIŞ, çıkış anlamına gelir, GİRİŞ ise giriş anlamına gelir.

    13 ve OUTPUT gibi niteleyici değerlere denir fonksiyon argümanları. Tüm fonksiyonların 2 argümana sahip olması zorunlu değildir. Bir fonksiyonun kaç argümanı olacağı, fonksiyonun özüne ve yazarın onu nasıl yazdığına bağlıdır. Tek argümanlı, üç, yirmi; fonksiyonların hiçbir argümanı olamaz. Daha sonra onları çağırmak için parantez açılır ve hemen kapatılır:

    Kesinti Yok() ;

    Aslında kurulum ve döngü fonksiyonlarımızın da herhangi bir argüman almadığını fark etmişsinizdir. Ve gizemli “bir şey” onları aynı şekilde, boş parantezlerle, doğru zamanda çağırıyor.

    Kodumuza dönelim. Yani LED'i sonsuza kadar yakıp söndürmeyi planladığımız için kontrol pinine bir kez çıkış yapılması gerekiyor ve sonra bunu hatırlamak istemiyoruz. Kurulum işlevinin ideolojik olarak amaçladığı şey budur: panoyu gerektiği gibi ayarlamak ve sonra onunla çalışmak.

    Döngü fonksiyonuna geçelim:

    void loop() ( digitalWrite(13, YÜKSEK) ; gecikme(100); digitalWrite(13, DÜŞÜK) ; gecikme(900) ; )

    Belirtildiği gibi kurulumdan hemen sonra çağrılır. Ve biter bitmez tekrar tekrar çağrılır. Döngü işlevi, programın ana döngüsü olarak adlandırılır ve ideolojik olarak yararlı işler gerçekleştirmek için tasarlanmıştır. Bizim durumumuzda faydalı iş- yanıp sönen LED.

    İfadeleri sırasıyla inceleyelim. Yani ilk ifade, digitalWrite yerleşik işlevine yapılan bir çağrıdır. Belirli bir pin'e mantıksal sıfır (DÜŞÜK, 0 volt) veya mantıksal sıfır (YÜKSEK, 5 volt) uygulamak üzere tasarlanmıştır.digitalWrite işlevine iki argüman iletilir: pin numarası ve mantıksal değer. Sonuç olarak yaptığımız ilk şey 13. pindeki LED'i ona 5 volt uygulayarak yakmaktır.

    Bu yapılır yapılmaz işlemci hemen bir sonraki ifadeye geçer. Bizim için bu, geciktirme fonksiyonuna bir çağrıdır. Gecikme işlevi yine işlemcinin belirli bir süre uyku moduna geçmesini sağlayan yerleşik bir işlevdir. Sadece tek bir argüman gerekiyor: Milisaniye cinsinden uyku süresi. Bizim durumumuzda bu 100 ms'dir.

    Biz uyurken her şey olduğu gibi kalır. LED yanık kalır. 100 ms sona erdiğinde işlemci uyanır ve hemen bir sonraki ifadeye geçer. Örneğimizde bu yine tanıdık digitalWrite yerleşik işlevine yapılan bir çağrıdır. Doğru, bu sefer ikinci argüman olarak DÜŞÜK değerini aktarıyoruz. Yani 13. pine mantıksal sıfır koyuyoruz yani 0 volt veriyoruz yani LED’i kapatıyoruz.

    LED söndükten sonra bir sonraki ifadeye geçiyoruz. Bir kez daha bu, gecikme fonksiyonuna yapılan bir çağrıdır. Bu sefer 900 ms uykuya dalıyoruz.

    Uyku bittiğinde döngü fonksiyonundan çıkılır. Tamamlandığında, "bir şey" onu hemen tekrar çağırır ve her şey yeniden olur: LED yanar, yanar, söner, bekler vb.

    Yazılanları Rusçaya çevirirseniz aşağıdaki algoritmayı elde edersiniz:

      LED'i yakmak

      100 milisaniye uyuyun

      LED'in kapatılması

      900 milisaniye uyuyoruz

      Gelelim 1. noktaya

    Böylece her 100 + 900 ms = 1000 ms = 1 saniyede bir yanıp sönen işarete sahip bir Arduino'muz var.

    Neler değiştirilebilir?

    Prensibi daha iyi anlamak için programın çeşitli varyasyonlarını yapmak için yalnızca edindiğimiz bilgileri kullanalım.

    Harici bir LED'i veya "yanıp sönmesi" gereken başka bir cihazı farklı bir pime bağlayabilirsiniz. Örneğin, 5'inde. Bu durumda programın nasıl değişmesi gerekir? 13. pin'e ulaştığımız her yerde numarayı 5. pin ile değiştirmeliyiz:

    Derleyin, indirin, test edin.

    LED'in saniyede 2 kez yanıp sönmesi için ne yapılması gerekiyor? Toplam 500 ms olacak şekilde uyku süresini azaltın:

    void setup() ( pinMode(5 , OUTPUT) ; ) void loop() ( digitalWrite(5 , YÜKSEK) ; gecikme(50 ); digitalWrite(5 , DÜŞÜK) ; gecikme(450 ) ; )

    LED'in her yanıp söndüğünde iki kez titremesini nasıl sağlayabilirim? Açmalar arasında kısa bir duraklama ile iki kez yakmanız gerekir:

    void setup() ( pinMode(5 , OUTPUT) ; ) void loop() ( digitalWrite(5 , YÜKSEK) ; gecikme(50 ); digitalWrite(5 , DÜŞÜK) ; gecikme(50 ) ; digitalWrite(5 , YÜKSEK) ; gecikme (50 ) ; digitalWrite(5 , DÜŞÜK) ; gecikme(350 ) ; )

    Cihazın saniyede bir dönüşümlü olarak yanıp sönen 2 LED'e sahip olmasını nasıl sağlayabilirim? İki pin ile iletişim kurmanız ve biriyle veya diğeriyle döngü halinde çalışmanız gerekir:

    void setup() ( pinMode(5 , OUTPUT) ; pinMode(6 , OUTPUT) ; ) void loop() ( digitalWrite(5 , YÜKSEK) ; gecikme(100 ); digitalWrite(5 , DÜŞÜK) ; gecikme(900 ) ; digitalWrite (6, YÜKSEK) ; gecikme(100) ; digitalWrite(6, DÜŞÜK) ; gecikme(900) ; )

    Cihazda demiryolu trafik ışığı gibi geçiş yapan 2 LED'in bulunduğundan nasıl emin olunur: önce biri sonra diğeri yanar? Sadece yanan LED'i hemen kapatmamanız, geçiş anına kadar beklemeniz gerekir:

    void setup() ( pinMode(5 , OUTPUT) ; pinMode(6 , OUTPUT) ; ) void loop() ( digitalWrite(5 , YÜKSEK) ; digitalWrite(6 , DÜŞÜK) ; gecikme(1000 ) ; digitalWrite(5 , DÜŞÜK) ; digitalWrite(6, YÜKSEK) ; gecikme(1000) ; )

    Diğer fikirleri kendiniz kontrol etmekten çekinmeyin. Gördüğünüz gibi çok basit!

    Boş alan ve güzel kod hakkında

    C++'da boşluklar, satır sonları ve sekme karakterleri derleyici için pek önemli değildir. Boşluk olan yerde satır sonu olabilir ve bunun tersi de geçerlidir. Aslında arka arkaya 10 boşluk, 2 satır sonu ve 5 boşluk daha bir boşluğa eşdeğerdir.

    Boş alan, bir programı anlaşılır ve görsel hale getirebileceğiniz veya tanınmayacak şekilde şeklini değiştirebileceğiniz bir programcı aracıdır. Örneğin, bir LED'in yanıp sönmesine ilişkin programı hatırlayın:

    void setup() ( pinMode(5 , OUTPUT) ; ) void loop() ( digitalWrite(5 , YÜKSEK) ; gecikme(100 ); digitalWrite(5 , DÜŞÜK) ; gecikme(900 ) ; )

    Bunu şu şekilde değiştirebiliriz:

    void setup() ( pinMode(5 , OUTPUT) ; ) void loop () ( digitalWrite(5 , YÜKSEK) ; gecikme(100 ); digitalWrite(5 ,LOW) ; gecikme(900 ) ; )

    Tek yaptığımız boş alanla biraz çalışmaktı. Artık uyumlu kod ile okunamayan kod arasındaki farkı net bir şekilde görebilirsiniz.

    Forumlarda saygı duyulan, başkaları tarafından okunan ve sizin tarafınızdan kolayca algılanan, söylenmemiş program tasarımı kanununa uymak için birkaç basit kurala uyun:

    1. Yeni bir bloğa başlarken her zaman ( ve ) arasındaki girintiyi artırın. Tipik olarak 2 veya 4 boşluk kullanılır. Değerlerden birini seçin ve baştan sona ona bağlı kalın.

    Kötü:

    void loop() ( digitalWrite(5 , YÜKSEK) ; gecikme(100 ); digitalWrite(5 , DÜŞÜK) ; gecikme(900 ) ; )

    İyi:

    void loop() ( digitalWrite(5 , YÜKSEK) ; gecikme(100 ); digitalWrite(5 , DÜŞÜK) ; gecikme(900 ) ; )

    2. Tıpkı doğal dilde olduğu gibi: virgülden sonra boşluk koyun ve önüne koymayın.

    Kötü:

    DigitalWrite(5 ,YÜKSEK); digitalWrite(5, YÜKSEK); digitalWrite(5 ,YÜKSEK);

    İyi:

    DigitalWrite(5 , YÜKSEK);

    3. Blok başlangıcı karakterini (geçerli girinti düzeyinde yeni bir satıra veya öncekinin sonuna. Ve blok sonu karakterini) geçerli girinti düzeyinde ayrı bir satıra yerleştirin:

    Kötü:

    void setup() ( pinMode(5, OUTPUT); ) void setup() ( pinMode(5, OUTPUT); ) void setup() ( pinMode(5, OUTPUT); )

    İyi:

    void setup() ( pinMode(5, OUTPUT); ) void setup() ( pinMode(5, OUTPUT); )

    4. Anlam bloklarını ayırmak için boş satırlar kullanın:

    İyi:

    Daha iyi:

    void loop() ( digitalWrite(5, YÜKSEK) ; gecikme(100) ; digitalWrite(5, DÜŞÜK) ; gecikme(900) ; digitalWrite(6, YÜKSEK) ; gecikme(100) ; digitalWrite(6, DÜŞÜK) ; gecikme( 900)

    Noktalı virgül hakkında

    Merak ediyor olabilirsiniz: neden her ifadenin sonunda noktalı virgül var? Bunlar C++'ın kurallarıdır. Bu tür kurallara denir dil sözdizimi. Sembol olarak; derleyici ifadenin nerede bittiğini anlar.

    Daha önce de belirttiğimiz gibi satır sonları onun için boş bir ifade olduğundan bu noktalama işaretine odaklanıyor. Bu, bir satıra birden fazla ifade yazmanıza olanak tanır:

    void loop() ( digitalWrite(5 , YÜKSEK) ; gecikme(100 ); digitalWrite(5 , DÜŞÜK) ; gecikme(900 ) ; )

    Program doğrudur ve daha önce gördüklerimize eşdeğerdir. Ancak bu şekilde yazmak kötü bir biçimdir. Kodun okunması çok daha zordur. Bu nedenle, aynı satıra birden fazla ifade yazmak için %100 geçerli bir nedeniniz yoksa bunu yapmayın.

    Yorumlar hakkında

    İyi programlamanın kurallarından biri şudur: "Kodu, açıklamaya ihtiyaç duymayacak kadar açık olacak şekilde yazın." Bu mümkündür, ancak her zaman değil. Koddaki bazı açık olmayan noktaları okuyucularına açıklamak için: meslektaşlarınıza veya kendinize bir ay içinde sözde yorumlar vardır.

    Bunlar program kodundaki derleyici tarafından tamamen göz ardı edilen ve yalnızca okuyucu için anlam taşıyan yapılardır. Yorumlar çok satırlı veya tek satırlı olabilir:

    /* Arduino'ya güç verildiğinde ilk olarak setup fonksiyonu çağrılır ve bu çok satırlı bir yorumdur */ geçersiz kurulum() ( // pin 13'ü çıkış moduna ayarlayın pinMode(13, ÇIKIŞ) ; ) void loop() ( digitalWrite(13 , YÜKSEK) ; gecikme(100 ) ; // 100 ms için uyku digitalWrite(13 , DÜŞÜK) ; gecikme(900 ) ; )

    Gördüğünüz gibi /* ve */ sembollerinin arasına dilediğiniz kadar yorum satırı yazabiliyorsunuz. Ve // dizisinden sonra satırın sonuna kadar gelen her şey yorum olarak kabul edilir.

    Böylece program yazmanın en temel ilkelerinin netleştiğini umuyoruz. Kazanılan bilgi, Arduino pinlerine giden güç kaynağını belirli zamanlama şemalarına göre programlı olarak kontrol etmenizi sağlar. Bu çok fazla değil ama yine de ilk deneyler için yeterli.

    Bu makalede, tam bir adım adım kılavuz hazırlamaya karar verdim. Arduino'ya yeni başlayanlar. Arduino'nun ne olduğuna, öğrenmeye başlamak için neye ihtiyacınız olduğuna, programlama ortamını nereden indireceğinize ve nasıl kurup yapılandıracağınıza, nasıl çalıştığına ve programlama dilinin nasıl kullanılacağına ve tam teşekküllü bir Arduino oluşturmak için gerekli olan çok daha fazlasına bakacağız. Bu mikrodenetleyici ailesini temel alan karmaşık cihazlar.

    Burada Arduino ile çalışmanın ilkelerini anlamanız için özetlenmiş bir minimum vermeye çalışacağım. Programlanabilir mikrodenetleyiciler dünyasına daha kapsamlı bir şekilde dalmak için bu sitenin diğer bölümlerine ve makalelerine dikkat edin. Bazı yönlerin daha ayrıntılı incelenmesi için bu sitedeki diğer materyallere bağlantılar bırakacağım.

    Arduino nedir ve ne işe yarar?

    Arduino, herkesin çeşitli elektro-mekanik cihazlar oluşturmasına olanak tanıyan bir elektronik yapı kitidir. Arduino yazılım ve donanımdan oluşur. Yazılım kısmı, bir geliştirme ortamı (ürün yazılımı yazmak ve hata ayıklamak için bir program), birçok hazır ve kullanışlı kitaplık ve basitleştirilmiş bir programlama dili içerir. Donanım, geniş bir mikrodenetleyici yelpazesi ve onlar için hazır modüller içerir. Bu sayede Arduino ile çalışmak çok kolay!

    Arduino'nun yardımıyla programlamayı, elektrik mühendisliğini ve mekaniği öğrenebilirsiniz. Ancak bu sadece bir eğitim yapıcısı değil. Buna dayanarak gerçekten kullanışlı cihazlar yapabilirsiniz.
    Basit yanıp sönen ışıklardan, meteoroloji istasyonlarına, otomasyon sistemlerinden başlayıp akıllı ev sistemlerine, CNC makinelerine ve insansız hava araçlarına kadar uzanıyor. Olasılıklar hayal gücünüzle bile sınırlı değil çünkü uygulamaya yönelik çok sayıda talimat ve fikir var.

    Arduino Başlangıç ​​Kiti

    Arduino öğrenmeye başlamak için mikrodenetleyici kartının kendisini ve ek parçalarını edinmeniz gerekir. Bir Arduino başlangıç ​​kiti satın almak en iyisidir, ancak ihtiyacınız olan her şeyi kendiniz seçebilirsiniz. Bir set seçmenizi öneririm çünkü daha kolay ve genellikle daha ucuzdur. Kesinlikle incelemeniz gereken en iyi setlere ve ayrı parçalara bağlantılar:

    Yeni başlayanlar için temel Arduino kiti:Satın almak
    Eğitim ve ilk projeler için geniş set:Satın almak
    Ek sensör ve modül seti:Satın almak
    Arduino Uno, serinin en temel ve kullanışlı modelidir:Satın almak
    Kolay öğrenme ve prototip oluşturma için lehimsiz devre tahtası:Satın almak
    Kullanışlı konektörlere sahip kablo seti:Satın almak
    LED seti:Satın almak
    Direnç kiti:Satın almak
    Düğmeler:Satın almak
    Potansiyometreler:Satın almak

    Arduino IDE geliştirme ortamı

    Ürün yazılımını yazmak, hata ayıklamak ve indirmek için indirip yüklemeniz gerekir Arduino IDE'si. Bu çok basit ve kullanışlı program. Web sitemde geliştirme ortamının indirilmesi, kurulması ve yapılandırılması sürecini zaten anlattım. Bu nedenle, burada programın en son sürümüne bağlantılar bırakacağım ve

    Sürüm pencereler Mac OS X Linux
    1.8.2

    Arduino programlama dili

    Elinizde bir mikrodenetleyici kartı ve bilgisayarınızda bir geliştirme ortamı kurulu olduğunda, ilk eskizlerinizi (firmware) yazmaya başlayabilirsiniz. Bunu yapmak için programlama diline aşina olmanız gerekir.

    Arduino programlama, önceden tanımlanmış işlevlere sahip C++ dilinin basitleştirilmiş bir sürümünü kullanır. Diğer C benzeri programlama dillerinde olduğu gibi kod yazmanın da bir takım kuralları vardır. İşte en temel olanları:

    • Her talimatın ardından noktalı virgül (;) gelmelidir
    • Bir işlevi bildirmeden önce, işlevin döndürdüğü veri türünü belirtmeniz veya işlev bir değer döndürmezse geçersiz kılmanız gerekir.
    • Değişken tanımlamadan önce veri tipinin belirtilmesi de gereklidir.
    • Yorumlar şu şekilde belirlenir: // Satır içi ve /* blok */

    Veri türleri, işlevler, değişkenler, operatörler ve dil yapıları hakkında daha fazla bilgiyi adresindeki sayfada bulabilirsiniz. Tüm bu bilgileri ezberlemenize ve hatırlamanıza gerek yok. Her zaman referans kitabına gidebilir ve belirli bir işlevin sözdizimine bakabilirsiniz.

    Tüm Arduino ürün yazılımı en az 2 işlev içermelidir. Bunlar setup() ve loop()'dur.

    kurulum fonksiyonu

    Her şeyin işe yaraması için bir taslak yazmamız gerekiyor. Butona bastıktan sonra LED'in yanmasını ve bir sonraki basışta sönmesini sağlayalım. İşte ilk taslağımız:

    // bağlı cihazların pinlerini içeren değişkenler int switchPin = 8; int ledPin = 11; // butonun durumunu saklayacak değişkenler ve LED boolean lastButton = LOW; boolean currentButton = DÜŞÜK; boolean ledOn = false; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // boolean debounse'u geri alma işlevi(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( gecikme ( 5); current = digitalRead(switchPin); ) dönüş akımı; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(ledPin, ledOn); )

    // bağlı cihazların pinlerini içeren değişkenler

    int switchPin = 8;

    int ledPin = 11;

    // butonun ve LED'in durumunu saklayacak değişkenler

    boolean lastButton = DÜŞÜK;

    boolean currentButton = DÜŞÜK;

    boolean ledOn = false;

    geçersiz kurulum() (

    pinMode(switchPin, INPUT);

    pinMode(ledPin, ÇIKIŞ);

    // geri dönüş fonksiyonu

    boolean debounse (son boolean) (

    boole akımı = digitalRead(switchPin);

    if (son != mevcut ) (

    gecikme(5);

    akım = digitalRead(switchPin);

    dönüş akımı;

    geçersiz döngü() (

    currentButton = debounse(lastButton);

    if (lastButton == DÜŞÜK && currentButton == YÜKSEK ) (

    ledOn = ! ledOn;

    lastButton = currentButton;

    digitalWrite(ledPin, ledOn);

    Oluşturduğum bu eskizde ek fonksiyon Temas sıçramasını bastırmak için debounse. Web sitemde iletişim sıçraması hakkında bilgi var. Bu materyale mutlaka göz atın.

    PWM Arduino'su

    Darbe genişlik modülasyonu (PWM), bir sinyalin görev döngüsünü kullanarak voltajı kontrol etme işlemidir. Yani PWM kullanarak yükü sorunsuz bir şekilde kontrol edebiliriz. Örneğin bir LED'in parlaklığını sorunsuz bir şekilde değiştirebilirsiniz ancak parlaklıktaki bu değişiklik voltajı azaltarak değil, düşük sinyal aralıklarını artırarak elde edilir. PWM'nin çalışma prensibi bu şemada gösterilmektedir:

    LED'e PWM uyguladığımızda hızla yanmaya ve sönmeye başlıyor. Frekans çok yüksek olduğundan insan gözü bunu göremez. Ancak video çekerken büyük olasılıkla LED'in yanmadığı anları göreceksiniz. Bu, kamera kare hızının PWM frekansının katı olmaması koşuluyla gerçekleşecektir.

    Arduino'da yerleşik bir darbe genişliği modülatörü vardır. PWM'yi yalnızca mikro denetleyici tarafından desteklenen pinlerde kullanabilirsiniz. Örneğin Arduino Uno ve Nano'nun 6 PWM çıkışı vardır: bunlar D3, D5, D6, D9, D10 ve D11 pinleridir. Pimler diğer kartlarda farklılık gösterebilir. İlgilendiğiniz panonun açıklamasını bulabilirsiniz

    Arduino'da PWM'yi kullanmak için, pin numarasını ve 0'dan 255'e kadar olan PWM değerini argüman olarak alan bir fonksiyon vardır. 0, yüksek sinyalle %0 doluluktur ve 255, %100'dür. Örnek olarak basit bir çizim yazalım. LED'in sorunsuz bir şekilde yanmasını sağlayalım, bir saniye bekleyelim ve aynı şekilde sönmesini sağlayalım ve bu şekilde sonsuza kadar devam edelim. İşte bu işlevi kullanmanın bir örneği:

    // LED pin 11'e bağlı int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i); gecikme(5); ) )

    // LED pin 11'e bağlandı

    int ledPin = 11;

    geçersiz kurulum() (

    pinMode(ledPin, ÇIKIŞ);

    geçersiz döngü() (

    for (int i = 0 ; ben< 255 ; i ++ ) {

    analogWrite(ledPin, i);

    gecikme(5);

    gecikme(1000);

    for (int i = 255; i > 0; i -- ) (

    Bu bölüm Arduino dünyasından kitaplara ayrılmıştır. Yeni başlayanlar ve profesyoneller için.

    Tüm kitap ve materyaller yalnızca bilgilendirme amaçlıdır; okuduktan sonra dijital veya basılı kopyasını satın almanızı rica ediyoruz.

    Kitap okumak için programlar:

    Pratik Arduino Ansiklopedisi

    Kitap, ArduinoUNO'nun günümüzdeki en popüler versiyonu veya buna benzer çok sayıda klonla temsil edilen Arduino platformuna dayalı tasarımların ana bileşenlerine ilişkin verileri özetlemektedir. Kitap 33 deneysel bölümden oluşuyor. Her deney, bir Arduino kartının, bağımsız özel cihazlar olan en basitinden en karmaşıkına kadar belirli bir elektronik bileşen veya modülle çalışmasını inceler. Her bölümde deneyin pratikte gerçekleştirilmesi için gerekli ayrıntıların bir listesi verilmektedir. Her deney için Fritzing entegre geliştirme ortamı formatında parçaların bağlantısının görsel bir diyagramı sağlanır. Birleştirilmiş devrenin nasıl görünmesi gerektiğine dair net ve doğru bir sunum sağlar. Aşağıda kullanılan bileşen veya modül hakkında teorik bilgiler verilmektedir. Her bölüm, yerleşik Arduino dilinde açıklamalarla birlikte taslak kodu (program) içerir.

    Elektronik. İlk quadcopter'ınız. Teori ve pratik

    Pratik yönler ayrıntılı olarak özetlenmiştir kendi emeğiyle ve quadkopterlerin çalışması. Tüm aşamalar dikkate alınır: finansal maliyetlerin en aza indirilmesiyle yapısal malzemelerin seçiminden ve bileşenlerin seçiminden, yazılım konfigürasyonuna ve bir kaza sonrasında onarıma kadar. Acemi uçak modelcilerinin sıklıkla yaptığı hatalara dikkat ediliyor. Çok rotorlu sistemlerin uçuşunun teorik temelleri ve Arduino IDE ile çalışmanın temel kavramları erişilebilir bir biçimde verilmektedir. GPS ve Glonass sistemlerinin tasarımı ve çalışma prensibinin yanı sıra modern darbeli yerleşik güç kaynakları ve lityum polimer pillerin kısa bir açıklaması verilmiştir. OSD sistemlerinin, telemetrinin, Bluetooth kablosuz kanalının ve popüler Ublox GPS navigasyon modüllerinin çalışma prensibi ve kurulum süreci ayrıntılı olarak açıklanmaktadır. Entegre sensörlerin ve uçuş kontrol cihazının tasarımı ve çalışma prensipleri anlatılmaktadır. Giriş seviyesi FPV ekipmanının seçimine yönelik öneriler verilmektedir ve quadcopter ekipmanının kurulumunda kullanılan bilgisayar ve akıllı telefon programlarına genel bir bakış verilmektedir.

    Arduino denetleyicisini kullanan projeler (2. baskı)

    Kitap, ana karta işlevsellik katan ana Arduino kartlarını ve genişletme kartlarını (kalkanları) kapsar. Arduino IDE programlama dili ve ortamı ayrıntılı olarak anlatılmıştır. Arduino ailesinin kontrolörlerini kullanan projeler dikkatle analiz edilir. Bunlar robotik, hava istasyonlarının oluşturulması, akıllı ev, otomat, televizyon, internet, kablosuz iletişim (bluetooth, radyo kontrolü) alanındaki projelerdir.

    İkinci baskı, Arduino'yu kullanan, adreslenebilir RGB şeritleriyle çalışan ve Arduino'da iRobot Create'i kontrol eden ses kontrolü projeleri ekler. Arduino Leonardo kartını kullanan projeler değerlendirmeye alınır. Yeni başlayan geliştiriciler için adım adım dersler verilmektedir.

    Arduino'yu Öğrenmek: Teknik Sihirbazlık için Araçlar ve Teknikler

    Kitap, Arduino mikrodenetleyici platformuna dayalı elektronik cihazların tasarımına ayrılmıştır. Arduino donanım ve yazılımı hakkında temel bilgiler sağlar. Entegre Arduino IDE'de programlamanın ilkeleri özetlenmiştir. Elektrik devrelerini nasıl analiz edeceğinizi, teknik açıklamaları nasıl okuyacağınızı ve kendi projeleriniz için doğru parçaları nasıl seçeceğinizi gösterir. Çeşitli sensörlerin, elektrik motorlarının, servoların, göstergelerin, kablolu ve kablosuz veri aktarım arayüzlerinin kullanım örnekleri ve açıklamaları verilmiştir. Her bölümde kullanılan bileşenler listelenir, kablo bağlantı şemaları sağlanır ve program listeleri ayrıntılı olarak açıklanır. Kitabın bilgi destek sitesine bağlantılar bulunmaktadır. Materyal, evde deneyler için basit ve ucuz bileşenlerin kullanımına odaklanmıştır.

    Hızlı başlangıç. Arduino'da uzmanlaşmak için ilk adımlar

    ARDUINO'yu ayırtın Hızlı başlangıç. ARDUINO'da Ustalaşmaya İlk Adımlar, Arduino kartını tanımak için gereken tüm bilgilerin yanı sıra, çeşitli elektronik bileşenler ve modüller kullanılarak yapılan 14 pratik deneyi içerir.

    Arduino kitiyle hızlı başlangıç. Kazanılan bilgi gelecekte kendi projelerinizi yaratmanızı ve bunları kolayca uygulamanızı mümkün kılacaktır.

    Arduino, cihaz iletişimi için sensörler ve ağlar (2. baskı)

    Elektronik cihazların birbirleriyle nasıl veri alışverişi yapabileceğini ve komutlara yanıt verebileceğini gösteren, Arduino mikrodenetleyici kartını temel alan 33 proje değerlendiriliyor. Akıllı telefonunuzdan "çağırarak" ev klimanızın ayarlarını nasıl değiştireceğinizi gösterir; ağ üzerinden etkileşim kuran kendi oyun kumandalarınızı nasıl oluşturacağınız; Çeşitli sensörlerden vb. kablosuz olarak bilgi almak için ZigBee, Bluetooth, kızılötesi ve normal radyo cihazlarının nasıl kullanılacağı. Arduino, Processing ve PHP programlama dilleri dikkate alınır.

    “Arduino, cihazları bağlamak için sensörler ve ağlar” kitabını okuduktan sonra, veri alışverişi yapan ve komutlara yanıt veren akıllı cihaz ağlarının nasıl oluşturulacağını öğreneceksiniz. Kitap, yaratıcı fikirlerini uygulamaya koymak isteyenler için idealdir. Elektronik alanında herhangi bir özel teknik bilgi veya beceriye sahip olmanıza gerek yoktur.Projeleri uygulamaya başlamak için ihtiyacınız olan tek şey bir kitap, fikirler ve Arduino denetleyicisi, bazı ağ modülleri ve sensörleri içeren ucuz bir kittir.

    Arduino'nun Temelleri

    Arduino, çevresinden duyusal girdi alabilen ve etkileşimli fiziksel nesneleri kontrol edebilen, tek devre kartı üzerine kurulu açık kaynaklı bir mikrodenetleyicidir. Aynı zamanda karta yazılım yazmanıza olanak sağlayan ve Arduino programlama dilinde programlanan bir geliştirme ortamıdır. Arduino en popüler mikrodenetleyici platformu haline geldi ve bu nedenle temelden ileri seviyeye kadar yüzlerce proje onun kullanılarak geliştiriliyor.

    Bu kitap öncelikle sizi Arduino ailesinin en önemli kart modelleriyle tanıştıracak. Daha sonra Arduino yazılım ortamını kurmayı öğreneceksiniz. Daha sonra dijital ve analog giriş ve çıkışlarla çalışacak, zamanı hassas bir şekilde yönetecek, projelerinizdeki diğer cihazlarla seri iletişim kuracak ve hatta projenizi daha duyarlı hale getirmek için kesintileri kontrol edeceksiniz. Son olarak, kitapta şu ana kadar öğrenilen tüm kavramlar kullanılarak gerçek dünyadan tam bir örnek sunulacak. Bu, kendi mikrodenetleyici projelerinizi geliştirmenize olanak sağlayacaktır.

    Arduino Geliştirme Yemek Kitabı

    Çevreyle etkileşime giren programlama ve elektronik projeler oluşturmak istiyorsanız, bu kitap size Arduino platformunun tüm önemli uygulamalarında size rehberlik edecek düzinelerce tarif sunacaktır. Etkileşimli projeler oluşturmak için her iki dünyanın en iyilerini birleştirmek isteyen programlama veya elektronik meraklılarına yöneliktir.

    Tek çipli bilgisayar kartı Arduino, boyut olarak küçük ancak kapsamı geniş olup, robotikten ev otomasyonuna kadar elektronik projelerde kullanılabilecek kapasiteye sahiptir. Dünyanın en popüler gömülü platformu olan Arduino'nun kullanıcıları, okul çocuklarından endüstri uzmanlarına kadar geniş bir yelpazede yer alıyor ve hepsi de onu tasarımlarına dahil ediyor.

    Arduino Geliştirme Yemek Kitabı, size basitten ileri seviyeye kadar herhangi bir Arduino projesini oluşturmak için gereken tekniklerin araç kutusunu veren açık ve adım adım tarifler içerir. Her bölüm, düğmeleri programlamayı öğrenmekten motorları çalıştırmaya, sensörleri yönetmeye ve ekranları kontrol etmeye kadar Arduino gelişimi için daha temel yapı taşlarını sunar. Baştan sona, geliştirme sorunlarınızı gidermenize ve Arduino projenizi bir sonraki seviyeye taşımanıza yardımcı olacak ipuçları ve püf noktaları bulacaksınız!

    Arduino Çizimler: Programlama Sihirbazlığı için Araçlar ve Teknikler

    Bu uygulamalı kılavuzla Arduino programlamasında ustalaşın Arduino Sketches, gadget'lara hayat veren, giderek popüler hale gelen mikro denetleyiciyi programlamak için pratik bir kılavuzdur. Her seviyedeki teknoloji tutkununun erişebileceği bu kitap, Arduino programlama konusunda uzman eğitimi ve becerilerinizi test etmek için uygulamalı uygulamalar sağlar. Çeşitli Arduino panolarının kapsamını, her standart kütüphanenin ayrıntılı açıklamalarını ve sıfırdan kütüphaneler oluşturmaya yönelik rehberliği ve öğrendiğiniz becerilerin günlük kullanımını gösteren pratik örnekleri bulacaksınız.

    Giderek daha gelişmiş programlama projeleri üzerinde çalışın ve donanıma özgü kitaplıkları ve kendi kitaplığınızı nasıl oluşturacağınızı öğrendikçe daha fazla kontrol sahibi olun. Arduino API'nin tüm avantajlarından yararlanın ve becerilerinizi genişletecek ipuçlarını ve püf noktalarını öğrenin. Arduino geliştirme kartı, çevre birimlerini alet veya lehim olmadan hızlı bir şekilde takmanıza olanak tanıyan yerleşik bir işlemci ve soketlerle birlikte gelir. Oluşturulması kolaydır, programlanması kolaydır ve özel bir donanım gerektirmez. Özellikle bu açık kaynaklı projenin popülaritesinin büyük teknoloji şirketlerine bile uyumlu ürünler geliştirme konusunda ilham vermesi nedeniyle hobi meraklıları için bu bir hayalin gerçekleşmesidir.

    Arduino ve LEGO Projeleri

    Hepimiz LEGO'nun ne kadar harika olduğunu biliyoruz ve giderek daha fazla insan Arduino ile ne kadar muhteşem şeyler yapabileceğinizi keşfediyor. Arduino ve LEGO Projelerinde Jon Lazar, Magic Lantern RF okuyucu, sensör özellikli LEGO müzik kutusu ve hatta Arduino kontrollü LEGO tren seti gibi eğlenceli gadget'lar oluşturmak için gezegendeki en harika iki şeyi nasıl birleştireceğinizi gösteriyor.

    * SNOT'un gerçekten harika olduğunu öğrenin (bu, Çiviler Üstte Değil anlamına gelir)
    * Her şeyin birbirine nasıl uyduğuyla ilgili ayrıntılı açıklamalara ve görsellere bakın
    * Kod ve açıklamalar dahil olmak üzere Arduino'nun her projeye nasıl uyduğunu öğrenin

    İster arkadaşlarınızı etkilemek, ister kediyi kızdırmak, ister sadece arkanıza yaslanıp yaratımlarınızın muhteşemliğinin tadını çıkarmak isteyin, Arduino ve LEGO Projeleri size tam olarak neye ihtiyacınız olduğunu ve bunları nasıl bir araya getireceğinizi gösterir.

    Arduino Atölyesi

    Arduino, meraklıların ev yapımı projelerde elektronik kullanımını kolaylaştırmak için tasarlanmış, ucuz, esnek, açık kaynaklı bir mikrodenetleyici platformudur. Neredeyse sınırsız sayıdaki giriş ve çıkış eklentileri, sensörler, göstergeler, ekranlar, motorlar ve daha fazlasıyla Arduino, etrafınızdaki dünyayla etkileşime giren cihazlar oluşturmanız için size sayısız yol sunar.

    Arduino Workshop'ta bu eklentilerin nasıl çalıştığını ve bunları kendi projelerinize nasıl entegre edebileceğinizi öğreneceksiniz. Arduino sistemine genel bir bakışla başlayacaksınız, ancak hızla çeşitli elektronik bileşenlerin ve kavramların kapsamına geçeceksiniz. Kitap boyunca uygulamalı projeler öğrendiklerinizi pekiştirecek ve bu bilgiyi nasıl uygulayacağınızı size gösterecektir. Anlayışınız arttıkça projelerin karmaşıklığı ve karmaşıklığı da artar.

    Arduino için C Programlama

    Kendi elektronik cihazlarınızı oluşturmak büyüleyici bir eğlencedir ve bu kitap, otonom ancak bağlantılı cihazların dünyasına girmenize yardımcı olur. Arduino kartıyla tanıştıktan sonra kendinizi şaşırtacak bazı beceriler öğreneceksiniz.

    Fiziksel bilgi işlem, gerçek dünyayı algılamak ve ona yanıt vermek için yazılım ve donanım kullanarak etkileşimli fiziksel sistemler oluşturmamıza olanak tanır. Arduino için C Programlama size algılama, geri bildirim, programlama ve hatta kablolama ve kendi otonom sistemlerinizi geliştirme gibi güçlü yeteneklerden nasıl yararlanacağınızı gösterecek.

    Arduino için C Programlama, kendi elektronik projenizi doğrudan kablolamaya ve kodlamaya başlamak için ihtiyacınız olan her şeyi içerir. C dilini ve Arduino'nuz için çeşitli yazılım türlerini nasıl kodlayacağınızı öğrenecek ve ardından düğmelerin, LED'lerin, LCD'nin, ağ modüllerinin ve çok daha fazlasının nasıl kullanıldığını anlamak için küçük tipik sistemler tasarlamaya geçeceksiniz.

    Yeni başlayan sihirbazlar için Arduino

    Bu kitap, her geçen gün daha popüler hale gelen ve ev tabanlı deneyciler, amatör tasarımcılar ve bilgisayar korsanlarından oluşan bir ordunun hem harika hem de tamamen çılgın projeleri hayata geçirmek için onu kullanmaya başladığı Arduino platformu hakkındadır. Arduino'nun yardımıyla herhangi bir hümanist, elektronik ve programlamanın temellerini öğrenebilir ve önemli miktarda maddi ve entelektüel kaynak harcamadan kendi modellerini hızla geliştirmeye başlayabilir. Arduino, oyun ve öğrenmeyi birleştirerek dürtü, hayal gücü ve merakla değerli ve ilginç bir şeyler yaratmanıza olanak tanır. Bu platform, elektronik alanında hiçbir şey bilmese bile yaratıcı kişiye güç veriyor! Deney yapın ve eğlenin!

    Arduino/Freeduino mikrodenetleyici kartlarını programlama

    Arduino/Freduino mikrodenetleyici kartlarının programlanması ele alınmıştır. Mikrodenetleyicilerin yapısı ve işleyişi, Arduino programlama ortamı, gerekli araçlar ve deneylerin yürütülmesi için bileşenler. Arduino kartlarını programlamanın temelleri ayrıntılı olarak ele alınmaktadır: program yapısı, komutlar, operatörler ve işlevler, analog ve dijital veri girişi/çıkışı. Materyalin sunumuna çeşitli cihazların geliştirilmesine ilişkin 80'den fazla örnek eşlik ediyor: sıcaklık rölesi, okul saati, dijital voltmetre, yer değiştirme sensörlü alarm, anahtar sokak aydınlatması vb. Her proje için gerekli bileşenlerin bir listesi, bağlantı şeması ve program listeleri bulunmaktadır. Yayıncının FTP sunucusu kitaptan örnekler için kaynak kodları, teknik açıklamalar, referans verileri, geliştirme ortamı, yardımcı programlar ve sürücüler içerir.

    Arduino ve Kinect Projeleri

    Arduino'da biraz değişiklik yaptıysanız ve Kinect'i nasıl dahil edebileceğinizi (ya da tam tersini) merak ettiyseniz bu kitap tam size göre. Arduino ve Kinect Projelerinin yazarları size basitten karmaşığa 10 harika, yaratıcı projenin nasıl oluşturulacağını gösterecek. Ayrıca Arduino diline çok benzeyen bir dil olan İşleme'yi proje tasarımınıza nasıl dahil edeceğinizi de öğreneceksiniz.

    On proje, her adımda becerilerinizi geliştirmek için dikkatle tasarlanmıştır. "Merhaba Dünya"nın Arduino ve Kinect eşdeğeriyle başlayarak yazarlar, sizi Kinect ve Arduino birleştirildiğinde ortaya çıkan çok çeşitli olasılıkları sergileyen çok çeşitli projelere götürecek.

    Arduino ile Atmosfer İzleme

    Dünyanın dört bir yanındaki üreticiler çevreyi izlemek için düşük maliyetli cihazlar üretiyor ve bu uygulamalı kılavuzla siz de bunu yapabilirsiniz. Kısa ve öz eğitimler, çizimler ve anlaşılır adım adım talimatlar aracılığıyla, Arduino ve çeşitli ucuz sensörleri kullanarak atmosferimizin kalitesini incelemek için gadget'ların nasıl oluşturulacağını öğreneceksiniz.

    Zararlı gazları, duman ve sis gibi toz parçacıklarını ve üst atmosferdeki bulanıklığı, yani genellikle duyularınız tarafından görülemeyen madde ve koşulları tespit edin. Ayrıca atmosferik testlerinizden daha fazlasını öğrenmenize yardımcı olacak bilimsel yöntemi nasıl kullanacağınızı da keşfedeceksiniz.

    * Hızlı bir elektronik kılavuzuyla Arduino'yu hızlandırın
    * Karbon monoksit, LPG, bütan, metan, benzen ve diğer birçok gazı tespit etmek için troposferik bir gaz sensörü oluşturun
    * Güneşin mavi, yeşil ve kırmızı ışık dalgalarının ne kadarının atmosfere nüfuz ettiğini ölçmek için bir LED Fotometre oluşturun
    * Bir LED hassasiyet dedektörü oluşturun ve Fotometrenizdeki her bir LED'in hangi ışık dalga boylarına duyarlı olduğunu keşfedin
    * Işık dalga boylarını ölçmenin atmosferdeki su buharı, ozon ve diğer maddelerin miktarını belirlemenize nasıl olanak sağladığını öğrenin

    Arduino Ustalık Rehberi

    Yayın, Arduino ile deneylere yönelik ARDX (Arduino için Başlangıç ​​Kiti) kitiyle çalışmaya ilişkin belgelerden birinin Rusça çevirisidir. Belgeler, Arduino modülüyle ilk tanışmayı amaçlayan 12 basit projeyi açıklamaktadır.

    Bu setin temel amacı ilginç ve faydalı vakit geçirmektir. Bunun yanı sıra küçük, basit ve ilginç cihazları bir araya getirerek çeşitli elektronik bileşenlerde ustalaşın. Çalışma prensibini anlamanıza olanak tanıyan bir çalışma cihazı ve bir araç alırsınız.

    Büyük Elektrik Ansiklopedisi

    Temel bilgilerden başlayarak birçok yararlı bilgi bulacağınız bugüne kadarki en eksiksiz kitap. Kitap, elektrik ve elektrikli ekipmanlarla çalışırken karşılaşabileceğiniz tüm ana sorunları ortaya koyuyor. Kablo türlerinin, tellerin ve kordonların tanımı, elektrik kablolarının kurulumu ve onarımı ve çok daha fazlası.

    “Büyük Elektrik Ansiklopedisi” kitabı, elektrik ve elektrikli ekipmanlarla çalışırken karşılaşabileceğiniz tüm ana sorunları ortaya koymaktadır. Kablo türlerinin, tellerin ve kordonların tanımı, elektrik kablolarının kurulumu ve onarımı ve çok daha fazlası. Bu kitap hem uzman elektrikçiye hem de ev ustasına faydalı bir referans olacaktır.

    Bu kitap hem uzman elektrikçiye hem de ev ustasına faydalı bir referans olacaktır.

    Arduino programcısının not defteri

    Bu not defteri, Arduino denetleyici programlama dilinin komut yapısı ve sözdizimi için kullanışlı, kullanımı kolay bir kılavuz olarak düşünülmelidir. Basitliği korumak için, yeni başlayanlar tarafından diğer web siteleri, kitaplar, seminerler ve sınıflarla birlikte ek bir bilgi kaynağı olarak kullanıldığında kılavuzu geliştiren bazı istisnalar yapılmıştır. Böyle bir kararın odaklanması amaçlanıyor. Arduino'yu kullanma bağımsız görevler için kullanılır ve örneğin dizilerin daha karmaşık kullanımını veya seri bağlantı kullanımını ortadan kaldırır.

    Bir Arduino C programının yapısının açıklamasıyla başlayan bu not defteri, dilin en yaygın öğelerinin sözdizimini açıklar ve bunların kullanımını örneklerle ve kod parçacıklarıyla gösterir. Not defteri, Arduino çekirdek kütüphane fonksiyonlarının örneklerini içerir ve ekte örnek devreler ve başlangıç ​​programları sağlanır.

    Analog mikrodenetleyici arayüzleri

    Bu yayın, analog çevre birimlerini bilgisayarlara, mikroişlemcilere ve mikrodenetleyicilere bağlamak için çeşitli arayüzlerin kullanımına yönelik pratik bir kılavuzdur.

    I2C, SPI/Microware, SMBus, RS-232/485/422, 4-20 mA akım döngüsü vb. arayüzlerin kullanım özellikleri ortaya çıkarılmış ve genel bir bakış verilmiştir. büyük miktar modern sensörler: sıcaklık, optik, CCD, manyetik, gerinim ölçerler vb. Kontrolörler, ADC'ler ve DAC'ler, bunların elemanları - UVH, ION, codec'ler, kodlayıcılar ayrıntılı olarak açıklanmaktadır.

    Aktüatörler - motorlar, termostatlar - ve çeşitli tiplerdeki (röle, oransal ve PID) otomatik kontrol sistemlerinin bir parçası olarak bunların kontrol sorunları dikkate alınır. Kitap, analog ve dijital teknoloji unsurlarının kullanımının donanım ve yazılım özelliklerini açıkça temsil eden resimlerle donatılmıştır. Yalnızca yeni başlayan radyo amatörlerinin değil, aynı zamanda analog ve dijital ekipmanlarla çalışma deneyimi olan uzmanların yanı sıra teknik kolej ve üniversite öğrencilerinin de ilgisini çekecektir.

    GSM/GPRS modemler için AT komutlarını kullanma kılavuzu

    Bu kılavuz ana hatlarıyla Detaylı Açıklama Wavecom modemleriyle çalışmak için eksiksiz bir AT komutları seti. Wavecom modemlerdeki yazılımda uygulanan IP yığın protokolleriyle çalışmak için özel AT komutları verilmiştir.

    Kitap, Wavecom ürünlerini temel alan yazılım ve donanım uygulamaları geliştiren geliştiricilere yöneliktir. Kılavuz aynı zamanda işletim sistemlerinden sorumlu mühendisler için de önerilir. çeşitli amaçlar için GSM şebekesinin veri aktarım kanalı olarak kullanılması. GSM şebekelerinde veri iletimi konusunu derslerinde veya diploma çalışmalarında kullanan öğrenciler için mükemmel bir referans kitabı.

    Bize bizden bahsedin

    İleti

    Arduino ile çalışma deneyiminiz varsa ve yaratıcılığa gerçekten zamanınız varsa herkesi portalımızda yayınlanan makalelerin yazarı olmaya davet ediyoruz. Bunlar Arduino ile yaptığınız deneylerle ilgili dersler veya hikayeler olabilir. Çeşitli sensörlerin ve modüllerin açıklaması. Yeni başlayanlar için ipuçları ve talimatlar. Makalelerinizi yazın ve yayınlayın.

    Geçmişte Arduino yazılım kısmı, yazılı kodu donanıma yazmanıza, derlemenize ve yüklemenize olanak tanıyan entegre bir yazılım ortamından (IDE) oluşuyordu. ArduinoIDE ortamı ve Kablolama dilinin kendisi öncelikle İşleme'ye ve dolaylı olarak C/C++'a dayanmaktadır. Aslında Arduino IDE eğlence için değil kolaylık sağlamak için büyük bir karmaşadır.

    Hatta dışarıdan vearduinoIDE veİşleme benzer


    Program (eskiz) nelerden oluşur?
    Her program, ne kadar karmaşık görünürse görünsün, ayrı setlerden oluşur. bloklar süslü parantezlerle () gösterilen kod. Minimal bir program yalnızca 2 blok gerektirir: kurulum ve döngü. Arduino için herhangi bir C++ programında bunların varlığı zorunludur, aksi takdirde derleme aşamasında hata alabilirsiniz.
    void setup() ( ) void loop() ( )
    setup() fonksiyonunda değişkenlerin ve kayıtların başlangıç ​​ayarları gerçekleşir. setup() tamamlandıktan sonra kontrol, loop() fonksiyonuna geçer; sonsuz döngü, gövdede yazılıdır (( ) arasında). Denetleyicinin tüm algoritmik eylemlerini gerçekleştiren bu komutlardır.

    Donanım "Merhaba, dünya! - yanıp sönen LED.
    Yazılım ve donanım arayüzünde Arduino ile ilk tanışmayı başlatan şey yanıp sönen LED'dir.


    Öncelikle minimum programı tamamlamanız gerekir. Arduino için (örneğin UNO), pin 12'ye ve GND'ye bir LED bağlarız (LED'in rengi kişisel tercihe göre seçilir).

    Void setup() ( pinMode(12, OUTPUT); ) void loop() ( digitalWrite(12, YÜKSEK); gecikme(100); digitalWrite(12, DÜŞÜK); gecikme(900); )
    Ctrl+C -> Ctrl+V yapın, derleyin, yükleyin, kontrol edin. Bir saniyeden fazla sürmeyen bir ışık gösterisi görüyoruz. Bunun neden olduğunu anlayalım.

    Daha önce boş olan bloklara birkaç tane ekledik ifade . Kurulum ve döngü fonksiyonlarının küme parantezleri arasına yerleştirildiler.
    Her ifade işlemci için bir talimattır. Bir blok içindeki ifadeler, herhangi bir duraklama veya geçiş olmaksızın, kesinlikle sırayla, birbiri ardına yürütülür. Yani belirli bir kod bloğundan bahsediyorsak, ne yapıldığını anlamak için yukarıdan aşağıya doğru okunabilir.

    Arasında ne olur?{ } ?
    Bildiğiniz gibi Arduino pinleri hem çıkış hem de giriş olarak çalışabilmektedir. Bir şeyi kontrol etmek istediğimizde kontrol pinini çıkış durumuna aktarmamız gerekir. Bu, fonksiyondaki ifadeyle yapılır. kurmak:
    pinMode(12, ÇIKIŞ); Bu durumda ifade şu şekilde gerçekleşir: işlev çağrısı . pinMode'da, sayıyla belirtilen pin, belirtilen moda (INPUT veya OUTPUT) ayarlanır. Hangi pinden ve hangi moddan bahsettiğimiz virgülle ayrılmış parantez içinde belirtilir. Bizim durumumuzda 12. pinin çıkış görevi görmesini istiyoruz. ÇIKIŞ, çıkış anlamına gelir, GİRİŞ ise giriş anlamına gelir. 12 ve OUTPUT gibi niteleyici değerlere denir fonksiyon argümanları . Bir fonksiyonun kaç argümana sahip olacağı, fonksiyonun doğasına ve yaratıcısının iradesine bağlıdır. Kurulum ve döngüde olduğu gibi fonksiyonların hiçbir argümanı olamaz.

    Daha sonra sırayla döngü bloğuna geçiyoruz:
    -yerleşik digitalWrite işlevini çağırın. Belirli bir pin'e mantıksal sıfır (DÜŞÜK, 0 volt) veya mantıksal sıfır (YÜKSEK, 5 volt) uygulamak üzere tasarlanmıştır.digitalWrite işlevine iki argüman iletilir: pin numarası ve mantıksal değer.
    - gecikme fonksiyonunu çağırın. Bu da yine işlemcinin belirli bir süre "uyumasına" neden olan yerleşik bir işlevdir. Sadece tek bir argüman gerekiyor: Milisaniye cinsinden uyku süresi. Bizim durumumuzda bu 100 ms'dir. 100 ms sona erdiğinde işlemci uyanır ve hemen bir sonraki ifadeye geçer.
    - yerleşik digitalWrite işlevini çağırın. Ancak bu sefer ikinci argüman DÜŞÜK. Yani 12. pine mantıksal sıfır koyuyoruz -> 0 volt uyguluyoruz -> LED'i kapatıyoruz.
    - gecikme fonksiyonunun çağrılması. Bu sefer biraz daha uzun süre uyuyoruz – 900 ms.

    Son fonksiyon yürütülür yürütülmez döngü bloğu sona erer ve her şey yeniden gerçekleşir. Aslında örnekte sunulan koşullar oldukça değişkendir ve gecikme değerleriyle oynayabilir, birkaç LED bağlayabilir ve trafik ışığı veya polis flaşörü gibi bir şey yapabilirsiniz (hepsi yaratıcının hayal gücüne ve iradesine bağlıdır).

    Sonuç yerine biraz temizlik hakkında.
    Aslında tüm boşluklar, satır sonları, sekme karakterleri derleyici için pek bir şey ifade etmez. Boşluk olan yerde satır sonu olabilir ve bunun tersi de geçerlidir. Aslında arka arkaya 10 boşluk, 2 satır sonu ve 5 boşluk daha bir boşluğa eşdeğerdir.


    Boş alanın yardımıyla programı anlaşılır ve görsel hale getirebilir veya tam tersine tanınmayacak şekilde şeklini değiştirebilirsiniz. Örneğin örnek program şu şekilde değiştirilebilir:

    void setup() ( pinMode(12, OUTPUT); ) void loop () ( digitalWrite(12, YÜKSEK); gecikme(100); digitalWrite(12, DÜŞÜK); gecikme(900); )

    Herhangi birinin okurken gözlerinin kanamasını önlemek için birkaç basit kurala uyabilirsiniz:


    1. Her zaman, arasında yeni bir bloğun başlangıcında( Ve ) girintiyi artırın. Tipik olarak 2 veya 4 boşluk kullanılır. Değerlerden birini seçin ve baştan sona ona bağlı kalın.

    Void döngüsü() ( digitalWrite(12, YÜKSEK); gecikme(100); digitalWrite(12, DÜŞÜK); gecikme(900); )
    2. Tıpkı normal dilde olduğu gibi: virgülden sonra boşluk koyun.

    digitalWrite(12, YÜKSEK);
    3. Blok başlangıcı karakterini (geçerli girinti düzeyinde yeni bir satıra veya öncekinin sonuna. Ve blok sonu karakterini) geçerli girinti düzeyinde ayrı bir satıra yerleştirin:

    void setup() ( pinMode(12, OUTPUT); ) void setup() ( pinMode(12, OUTPUT); )
    4. Anlam bloklarını ayırmak için boş satırlar kullanın:

    void loop() ( digitalWrite(12, YÜKSEK); gecikme(100); digitalWrite(12, DÜŞÜK); gecikme(900); digitalWrite(12, YÜKSEK); gecikme(100); digitalWrite(12, DÜŞÜK); gecikme( 900);)
    5. Çocuğunuzun okumaktan keyif alması için sözde yorumlar vardır. Bunlar program kodundaki derleyici tarafından tamamen göz ardı edilen ve yalnızca onu okuyan kişi için önemli olan yapılardır. Yorumlar çok satırlı veya tek satırlı olabilir:

    /* bu çok satırlı bir yorumdur */ // bu tek satırlı bir yorumdur

    ""Yeni Başlayanlar için Arduino" eğitim kursunu sunuyor. Bu seri 10 ders ve ek materyalden oluşmaktadır. Dersler metin talimatlarını, fotoğrafları ve eğitici videoları içerir. Her derste gerekli bileşenlerin bir listesini, bir program listesini ve bir bağlantı şemasını bulacaksınız. Bu 10 temel dersi tamamladıktan sonra daha ilginç modellere ve Arduino tabanlı robot yapımına geçebileceksiniz. Kurs yeni başlayanlara yöneliktir; başlamak için elektrik mühendisliği veya robot biliminden herhangi bir ek bilgiye gerek yoktur.

    Arduino hakkında kısa bilgi

    Arduino nedir?

    Arduino (Arduino), ana bileşenleri bir giriş-çıkış kartı ve bir geliştirme ortamı olan bir donanım bilgi işlem platformudur. Arduino, bağımsız etkileşimli nesneler oluşturmak veya bilgisayarda çalışan yazılıma bağlanmak için kullanılabilir. Arduino tek kartlı bir bilgisayardır.

    Arduino ve robotlar nasıl bağlanır?

    Cevap çok basit; Arduino sıklıkla şu şekilde kullanılır: robot beyni.

    Arduino kartlarının benzer platformlara göre avantajı, nispeten düşük fiyatları ve robotik ve elektrik mühendisliği alanındaki amatörler ve profesyoneller arasında neredeyse yaygın dağılımıdır. Arduino'ya girdikten sonra, herhangi bir dilde destek ve sorularınızı yanıtlayacak ve geliştirmelerinizi tartışacak benzer düşüncelere sahip kişileri bulacaksınız.

    Ders 1. Arduino'da Yanıp Sönen LED

    İlk derste bir LED'i Arduino'ya nasıl bağlayacağınızı ve yanıp sönmesini nasıl kontrol edeceğinizi öğreneceksiniz. Bu en basit ve en temel modeldir.

    Işık yayan diyotyarı iletken cihaz içinden ileri yönde bir elektrik akımı geçtiğinde optik radyasyon yaratır.

    Ders 2. Arduino'ya bir düğme bağlama

    Bu derste bir düğmeyi ve bir LED'i Arduino'ya nasıl bağlayacağınızı öğreneceksiniz.

    Butona basıldığında LED yanacak, butona basıldığında ise yanmayacaktır. Bu aynı zamanda temel modeldir.

    Ders 3. Arduino'ya potansiyometre bağlama

    Bu eğitimde bir potansiyometreyi Arduino'ya nasıl bağlayacağınızı öğreneceksiniz.

    Potansiyometre- Bu direnci ayarlanabilir direnç.Potansiyometreler çeşitli parametrelerin düzenleyicileri olarak kullanılır - ses seviyesi, güç, voltaj vb.Bu aynı zamanda temel planlardan biridir. Bizim modelimizde potansiyometre düğmesini çevirerekLED'in parlaklığı bağlı olacaktır.

    Ders 4. Arduino'da servo kontrolü

    Bu eğitimde servoyu Arduino'ya nasıl bağlayacağınızı öğreneceksiniz.

    Servodönme açısı ayarlanarak şaft konumu kontrol edilebilen bir motordur.

    Servolar, robotların çeşitli mekanik hareketlerini simüle etmek için kullanılır.

    Ders 5. Arduino'da üç renkli LED

    Bu derste üç renkli bir LED'i Arduino'ya nasıl bağlayacağınızı öğreneceksiniz.

    Üç renkli LED(rgb led) - bunlar bir muhafazada farklı renklerde üç LED'dir. Üzerinde dirençlerin bulunduğu küçük bir baskılı devre kartıyla veya yerleşik dirençler olmadan gelirler. Ders her iki seçeneği de kapsar.

    Ders 6. Arduino'da Piezoelektrik eleman

    Bu derste piezo elemanını Arduino'ya nasıl bağlayacağınızı öğreneceksiniz.

    Piezo elemanı- tercüme eden bir elektromekanik dönüştürücü elektrik voltajı membran titreşimine dönüşür. Bu titreşimler ses oluşturur.

    Modelimizde programda uygun parametreler ayarlanarak ses frekansı ayarlanabilmektedir.

    Ders 7. Arduino'da fotodirenç

    Kursumuzun bu dersinde bir fotorezistörün Arduino'ya nasıl bağlanacağını öğreneceksiniz.

    Fotodirenç- Direnci üzerine düşen ışığın parlaklığına bağlı olan bir direnç.

    Bizim modelimizde LED ancak fotorezistörün üzerindeki ışığın parlaklığı belirli bir değerin altında olduğunda yanar, bu parlaklık programdan ayarlanabilir.

    Ders 8. Arduino'da hareket sensörü (PIR). E-postanın otomatik gönderilmesi

    Kursumuzun bu dersinde Arduino'ya bir hareket sensörünü (PIR) nasıl bağlayacağınızı ve otomatik e-posta gönderimini nasıl organize edeceğinizi öğreneceksiniz.

    Hareket sensörü (PIR)- insanların veya hayvanların hareketini veya varlığını tespit etmek için kızılötesi sensör.

    Modelimizde PIR sensöründen insan hareketi ile ilgili sinyal alındığında Arduino bilgisayara E-posta göndermesi için bir komut gönderir ve mektup otomatik olarak gönderilir.

    Ders 9. Sıcaklık ve nem sensörünün DHT11 veya DHT22 bağlanması

    Bu dersimizde DHT11 veya DHT22 sıcaklık ve nem sensörünü Arduino'ya nasıl bağlayacağınızı öğrenecek ve özelliklerindeki farklılıklara aşina olacaksınız.

    Sıcaklık ve nem sensörü kapasitif bir nem sensörü ve sıcaklığı ölçmek için bir termistörden oluşan kompozit bir dijital sensördür.

    Modelimizde Arduino sensör okumalarını okur ve okumaları bilgisayar ekranında görüntüler.

    Ders 10. Matris klavyeyi bağlama

    Kursumuzun bu dersinde, bir matris klavyeyi Arduino kartına nasıl bağlayacağınızı öğrenecek ve ayrıca çeşitli ilginç devrelerle tanışacaksınız.

    Matris klavyesiçok sayıda düğmenin bağlantısını kolaylaştırmak için icat edildi. Bu tür cihazlar her yerde bulunur; bilgisayar klavyelerinde, hesap makinelerinde vb.

    Ders 11. DS3231 gerçek zamanlı saat modülünü bağlama

    Kursumuzun son dersinde aileden gerçek zamanlı saat modülünün nasıl bağlanacağını öğreneceksiniz.
    DS'yi Arduino kartına bağlayın ve ayrıca çeşitli ilginç devrelerle tanışın.

    Gerçek zamanlı saat modülü- kronometrik verileri (güncel saat, tarih, haftanın günü vb.) kaydetmek için tasarlanmış bir elektronik devre olup, otonom bir güç kaynağı ve bir kayıt cihazından oluşan bir sistemdir.

    Başvuru. Hazır çerçeveler ve Arduino robotları


    Arduino'yu yalnızca tahtanın kendisinden değil, aynı zamanda bu tahtayı temel alan hazır, tam teşekküllü bir robot - bir örümcek robotu, bir robot araba, bir kaplumbağa robotu vb. satın alarak da öğrenmeye başlayabilirsiniz. Çok yol Ayrıca elektrik devrelerinden özellikle hoşlanmayanlar için de uygundur.

    Çalışan bir robot modeli satın alarak, ör. aslında hazır yüksek teknoloji ürünü bir oyuncak, bağımsız tasarım ve robotiğe olan ilgiyi uyandırabilir. Arduino platformunun açıklığı aynı bileşenlerden yeni oyuncaklar yapmanıza olanak sağlar.

    Diğer bir seçenek ise bir robot çerçevesi veya gövdesi satın almaktır: tekerlekli veya paletli bir platform, insansı bir robot, bir örümcek vb. Bu durumda robotun içini kendiniz doldurmanız gerekecektir.

    Başvuru. Mobil rehber


    – amacı son kullanıcıya taşıma fırsatı vermek olan Arduino platformu için algoritma geliştiricileri için bir asistan cep telefonu araması komutlar (referans kitabı).

    Uygulama 3 ana bölümden oluşmaktadır:

    • Operatörler;
    • Veri;
    • Fonksiyonlar.

    Arduino'yu nereden satın alabilirim?


    Arduino kitleri

    Kurs ek derslerle güncellenecektir. Bizi takip edin