Arduino bağlantısı ve kurulumu. Yeni başlayanlar için Arduino'yu bağlama ve programlama Arduino, Windows 7'yi başlatmıyor

Mikrodenetleyicileri incelemek karmaşık ve anlaşılmaz mı görünüyor? Arudino ortaya çıkmadan önce bu gerçekten kolay değildi ve belirli bir dizi programcı ve diğer ekipman gerektiriyordu.

Bu bir tür elektronik tasarımcıdır. Projenin ilk hedefi insanların elektronik parçalara minimum zaman ayırarak elektronik cihazların nasıl programlanacağını kolayca öğrenmelerine olanak sağlamaktır.

Karmaşık devrelerin montajı ve kartların bağlanması, havya olmadan, ancak çıkarılabilir erkek ve dişi bağlantılara sahip jumperların yardımıyla gerçekleştirilebilir. Bu şekilde, Arduino sözlüğünde basitçe "Kalkanlar" olarak adlandırılan hem monte edilmiş elemanlar hem de genişletme kartları bağlanabilir.

Yeni başlayanlar için satın alınacak ilk Arduino kartı nedir?

Temel ve en popüler tahta olarak kabul edilir. Bu pano kredi kartı boyutundadır. Oldukça büyük. Satışta olan çoğu kalkan buna mükemmel uyum sağlar. Kartta harici cihazları bağlamak için soketler bulunur.

2017 yılında yurt içi mağazalarda fiyatı 4-5 dolar civarındadır. Modern modellerde kalbi Atmega328'dir.

Arduino kartının görüntüsü ve her pinin fonksiyonlarının açıklaması, Arduino UNO pin çıkışı

Bu karttaki mikrodenetleyici DIP28 paketindeki uzun bir çiptir, yani 28 bacağı vardır.

Bir sonraki en popüler tahtanın maliyeti bir öncekinin neredeyse iki katıdır - 2-3 dolar. Bu bir ücrettir. Mevcut kartlar aynı Atmega328 üzerine kuruludur, işlevsel olarak UNO'ya benzerler, boyut ve USB ile koordinasyon çözümü açısından farklılıklar vardır, bu konuya daha sonra değineceğiz. Diğer bir fark ise cihazları karta bağlamak için pim şeklinde fişlerin sağlanmasıdır.

Bu kartın pin (bacak) sayısı aynıdır, ancak mikro denetleyicinin daha kompakt bir TQFP32 paketinde yapıldığını, kasaya ADC6 ve ADC7'nin eklendiğini, diğer iki "ekstra" bacağın güç veriyolunu kopyaladığını görebilirsiniz. . Boyutu oldukça kompakttır; başparmağınız kadardır.

Üçüncü en popüler anakart ise bilgisayara bağlanmak için USB girişinin olmaması, bağlantının nasıl yapıldığını biraz sonra anlatacağım.

Bu, incelenenlerin en küçüğüdür, aksi takdirde önceki ikisine benzer ve kalbi hala Atmega328'dir. Bu yeni başlayanlar için bir makale olduğundan ve panoları karşılaştırmak ayrı bir makalenin konusu olduğundan diğer panoları dikkate almayacağız.

Üstte USB-UART bağlantı şeması var, “GRN” pini mikrodenetleyici sıfırlama devresine bağlı, başka bir şey tarafından çağrılabilir, buna neden ihtiyaç duyulduğunu daha sonra öğreneceksiniz.

UNO prototip oluşturmak için harika olsa da Nano ve Pro Mini, az yer kapladıkları için projenizi bitirmek için harikadır.

Arduino'yu bilgisayara nasıl bağlarım?

Arduino Uno ve Nano bilgisayara USB üzerinden bağlanır. Ancak USB portu için herhangi bir donanım desteği bulunmuyor; burada genellikle USB-Seri veya USB-UART (rs-232) adı verilen seviye dönüştürme devresi çözümü kullanılıyor. Aynı zamanda mikrodenetleyiciye özel bir Arduino bootloader flashlanarak bu buslar üzerinden flashlama yapılmasına olanak sağlanır.

Arduino Uno bu bağlantıyı USB destekli bir mikrodenetleyici olan ATmega16U2 (AT16U2) üzerinde gerçekleştirir. Ana mikrodenetleyicinin donanım yazılımını flaş etmek için kartta ek bir mikrodenetleyicinin gerekli olduğu ortaya çıktı.

Arduino Nano'da bu, FT232R yongası veya onun analogu CH340 tarafından uygulanır. Bu bir mikrodenetleyici değil - bir seviye dönüştürücüdür, bu gerçek Arduino Nano'yu kendi ellerinizle sıfırdan monte etmeyi kolaylaştırır.

Tipik olarak, Arduino kartını bağladığınızda sürücüler otomatik olarak yüklenir. Ancak Arduino Nano'nun Çince kopyasını aldığımda cihaz tanımlandı ancak çalışmadı, dönüştürücünün üzerinde çıkış tarihi hakkında bilgi veren yuvarlak bir etiket vardı, bunun bilerek yapılıp yapılmadığını bilmiyorum ama onu çıkardığımda CH340 işaretini gördüm.

Daha önce bununla hiç karşılaşmamıştım ve tüm USB-UART dönüştürücülerin FT232 üzerine monte edildiğini düşündüm, sürücüleri indirmem gerekiyordu, “Arduino ch340 sürücüleri” diye arama yaparak bulmaları çok kolay. Basit bir kurulumun ardından her şey işe yaradı!

Mikrodenetleyiciye aynı USB bağlantı noktası üzerinden de güç verilebilir; cep telefonundan adaptöre bağlarsanız sisteminiz çalışacaktır.

Anakartımda USB yoksa ne yapmalıyım?

Arduino Pro Mini kartının boyutları daha küçüktür. Bu, ürün yazılımı için USB konektörünün ve aynı USB-UART dönüştürücünün çıkarılmasıyla sağlandı. Bu nedenle ayrı olarak satın alınması gerekir. CH340 (en ucuzu), CPL2102 ve FT232R'yi temel alan en basit dönüştürücünün maliyeti 1 dolardan başlıyor.

Satın alırken bu adaptörün hangi voltaj için tasarlandığına dikkat edin. Pro mini'nin 3,3 ve 5 V versiyonları vardır; dönüştürücülerde genellikle besleme voltajını değiştirmek için bir atlama kablosu bulunur.

Pro Mini donanım yazılımını güncellerken, başlatmadan hemen önce RESET tuşuna basmanız gerekir, ancak DTR'li dönüştürücülerde bu gerekli değildir, bağlantı şeması aşağıdaki şekildedir.

Özel “Mama-Mama” (dişi-dişi) terminalleri ile bağlanırlar.

Aslında tüm bağlantılar bu tür terminaller (Dupont) kullanılarak yapılabilir, her iki tarafta prizli ve fişli olarak gelirler ve bir tarafta priz, diğer tarafta fiş bulunur.

Arduino için programlar nasıl yazılır?

Eskizlerle çalışmak için (Arduino mühendislerinin dilinde donanım yazılımının adı), Arduino IDE için özel bir entegre geliştirme ortamı vardır, bunu resmi web sitesinden veya herhangi bir tematik kaynaktan ücretsiz olarak indirebilirsiniz; genellikle herhangi bir sorun olmaz Kurulum ile.

Program arayüzü böyle görünüyor. Programları, Arduino için özel olarak tasarlanmış basitleştirilmiş bir C AVR dilinde, esasen Wiring adı verilen bir dizi kitaplıkta ve ayrıca saf C AVR'de yazabilirsiniz. Kullanımı kodu basitleştirir ve çalışmasını hızlandırır.

Pencerenin üst kısmında bir dosyayı açabileceğiniz, ayarları açabileceğiniz, birlikte çalıştığınız panoyu seçebileceğiniz (Uno, Nano ve diğerleri) ve ayrıca hazır kod örnekleriyle projeleri açabileceğiniz tanıdık bir menü vardır. Aşağıda ürün yazılımıyla çalışmak için bir dizi düğme bulunmaktadır; aşağıdaki şekilde tuşların atanmasını göreceksiniz.

Pencerenin alt kısmında proje, kodun durumu, ürün yazılımı ve hataların varlığı hakkındaki bilgilerin görüntülendiği bir alan bulunmaktadır.

Arduino IDE Programlama Temelleri

Kodun başında değişkenleri bildirmeniz ve varsa ek kütüphaneleri eklemeniz gerekir, bu şu şekilde yapılır:

#biblioteka.h'yi dahil edin; // “Biblioteka.h” adlı kütüphaneyi bağlayın

#define changenaya 1234; // 1234 değerinde bir değişken tanımlayalım

Define komutu, derleyicinin değişkenin tipini kendisinin seçmesine izin verir, ancak bunu manüel olarak ayarlayabilirsiniz; örneğin bir tamsayı int veya kayan noktalı kayan nokta.

int led = 13; // “led” değişkenini yarattık ve ona “13” değerini atadık

Program pinin durumunu 1 veya 0 olarak belirleyebilir. 1 mantıksal bir birimdir, eğer pin 13 1 ise, fiziksel pinindeki voltaj mikrodenetleyicinin besleme voltajına eşit olacaktır (Arduino UNO ve Nano için - 5V)

DigitalWrite (pin, değer) komutu kullanılarak bir dijital sinyal yazılır, örneğin:

digitalWrite(led, yüksek); // pin 13'e (yukarıda belirtmiştik) bir tane yazıyoruz. Birimler.

Anlayacağınız üzere portlara karttaki numaraya karşılık gelen numaralandırmaya göre erişilmektedir. Önceki koda benzer bir örnek:

digitalWrite(13, yüksek); // pin 13'ü bire ayarladık

Sık kullanılan bir zaman gecikme fonksiyonu, değeri milisaniye cinsinden belirtilen, mikrosaniye kullanılarak elde edilen gecikme() komutu tarafından çağrılır.

gecikmeMicroseconds() Gecikme(1000); //mikrodenetleyici 1000 ms (1 saniye) bekleyecek

Giriş ve çıkış bağlantı noktası ayarları void setup() işlevinde şu komutla belirtilir:

pinMode(NOMERPORTA, ÇIKIŞ/GİRİŞ); // argümanlar - değişken adı veya bağlantı noktası numarası, aralarından seçim yapılabilecek giriş veya çıkış

İlk Blink programını anlama

Mikrodenetleyiciler için bir nevi “Merhaba dünya” olarak LED’in yanıp sönmesini sağlayan bir program var, koduna bakalım:

Başlangıçta pinMode komutu ile mikrodenetleyiciye LED'li portu çıkışa atamasını söyledik. Kodda "LED_BUILTIN" değişkeninin bildiriminin olmadığını zaten fark etmişsinizdir; gerçek şu ki Uno, Nano ve diğer kartlarda yerleşik bir LED fabrikadan pin 13'e bağlanır ve lehimlenir. pano. Projelerinizde görüntülemek veya yanıp sönen programlarınızın basit testi için tarafınızca kullanılabilir.

Daha sonra LED'in lehimlendiği pini bire (5 V) ayarlıyoruz, sonraki satır MK'yi 1 saniye bekletiyor ve ardından LED_BUILTIN pinini sıfıra ayarlıyor, bir saniye bekliyor ve program bir daire içinde tekrarlanıyor, böylece LED_BUILTIN 1'e eşit olduğunda - LED (ve bağlantı noktasına bağlı diğer herhangi bir yük) açılır, 0'da kapatıldığında.

Değeri analog porttan okuyoruz ve okunan verileri kullanıyoruz

AVR Atmega328 mikrokontrolcüsü yerleşik bir 10 bit analogdan dijitale dönüştürücüye sahiptir. 10 bitlik ADC, tüm sinyal genlik salınımının (5 V) 1/1024'lük adımlarıyla 0 ila 5 volt arasındaki voltaj değerlerini okumanıza olanak tanır.

Daha açık anlatmak gerekirse, durumu ele alalım, analog girişteki voltaj değeri 2,5 V diyelim, yani voltaj 0 – “0” ise, 5 ise mikrodenetleyici “512” pininden değeri okuyacaktır. V-(1023). 1023 - çünkü sayma 0'dan başlar, yani. 0, 1, 2, 3 vb. toplamda 1023 - 1024 değere kadar.

Örnek olarak standart “analogInput” taslağını kullanarak kodda böyle görünüyor

int sensörPin = A0;

int ledPin = 13;

int sensörDeğeri = 0;

pinMode(ledPin, ÇIKIŞ);

sensörDeğeri = analogRead(sensorPin);

digitalWrite(ledPin, YÜKSEK);

gecikme(sensörDeğeri);

digitalWrite(ledPin, DÜŞÜK);

gecikme(sensörDeğeri);

Değişkenleri bildiriyoruz:

    Ledpin - çıkışa bağımsız olarak yerleşik LED'li bir pin atarız ve ona bireysel bir ad veririz;

    sensörPin - karttaki işaretlere göre ayarlanan analog giriş: A0, A1, A2, vb.;

    sensörValue - tamsayı okuma değerini saklamak ve onunla daha fazla çalışmak için bir değişken.

Kod şu şekilde çalışır: sensörValue, sensörPin'den (analogRead komutu) okunan analog değeri kaydeder. - burada analog sinyalle çalışma sona eriyor, ardından her şey önceki örnekte olduğu gibi.

ledPin’e bir tane yazıyoruz, LED yanıyor ve sensörValue değerine eşit bir süre kadar bekliyoruz yani. 0'dan 1023 milisaniyeye kadar. LED'i kapatıyoruz ve bu süreyi tekrar bekliyoruz, ardından kod tekrarlanıyor.

Böylece potansiyometreyi konumlandırarak LED'in yanıp sönme sıklığını ayarlamış oluyoruz.

Arudino için harita işlevi

Aktüatörlere yönelik tüm işlevler (hiçbirini bilmiyorum) argüman olarak “1023”ü desteklemez; örneğin, servo, dönüş açısıyla, yani servo motorun yarım dönüşü (180 derece) (yarım dönüşü) ile sınırlıdır. maksimum fonksiyon argümanı “180”

Şimdi sözdizimi hakkında: harita (çevirdiğimiz değer, minimum giriş değeri, maksimum giriş değeri, minimum çıkış değeri, maksimum çıkış değeri).

Kodda şöyle görünür:

(map(analogRead(pot), 0, 1023, 0, 180));

Potansiyometreden (analogRead(pot)) değeri 0'dan 1023'e kadar okuyoruz ve çıkışta 0'dan 180'e kadar sayılar alıyoruz

Değer haritası değerleri:

Uygulamada bunu aynı servo sürücünün kodunun çalışmasına uyguluyoruz, Arduino IDE'den gelen koda bir göz atın, önceki bölümleri dikkatlice okursanız o zaman herhangi bir açıklamaya gerek kalmaz.

Ve bağlantı şeması.

Sonuçlar Arduino, mikrodenetleyicilerle çalışmayı öğrenmek için çok uygun bir araçtır. Ve saf C AVR kullanırsanız veya bazen "Pure C" olarak adlandırıldığı gibi, kodun ağırlığını önemli ölçüde azaltırsınız ve daha fazlası mikro denetleyicinin belleğine sığar, sonuç olarak mükemmel bir fabrika elde edersiniz. USB üzerinden ürün yazılımını flaş etme özelliğine sahip hata ayıklama kartı yapıldı.

Arduino'yu seviyorum. Pek çok deneyimli mikrodenetleyici programcısının onu fazla basitleştirilmiş olduğu için temelsiz bir şekilde eleştirmesi üzücü. Prensip olarak, yalnızca dil basitleştirilmiştir, ancak kimse sizi onu kullanmaya zorlamaz, ayrıca mikro denetleyiciyi ICSP konektörü aracılığıyla flaşlayabilir ve gereksiz önyükleyiciler olmadan istediğiniz kodu oraya yükleyebilirsiniz.

Gelişmiş bir tasarımcı gibi elektronikle oynamak isteyenler için bu mükemmel ve deneyimli programcılar için montaj gerektirmeyen bir kart olarak da faydalı olacaktır!

Arduino ve çeşitli devrelerde kullanımının özellikleri hakkında daha fazla bilgi için e-kitaba bakın - .

Arduio IDE kurulumu yapılırken orijinal Arduino kartlarıyla çalışabilmesi için gerekli sürücülerin otomatik olarak kurulması gerekmektedir. Ancak işin püf noktası, Çin anakartlarının daha ucuz bir USB arayüz denetleyicisine sahip olması; onunla çalışmak için özel bir sürücüye ihtiyaç var. Çinli kontrolör daha kötü değil, sadece daha ucuz =)

Herhangi bir nedenle Arduino sürücülerini yüklemediyseniz program klasöründen manuel olarak yükleyebilirsiniz.
Windows için CH341 sürücüsünü indirebilir veya Google'da kendiniz arayabilirsiniz.


Daha sonra Arduino'yu bilgisayara bağlayın, Windows'un onu tanımasını ve hatırlamasını bekleyin (ilk bağlantı).
Not: Cihazın tanındığını ve belirli bir numaraya sahip bir COM bağlantı noktasına bağlandığını bildiren bir pencere açılacaktır. 1 numaradan farklı

Varsayılan olarak, Linux'ta Çin Arduino'larını ek ekipman olmadan flaşlayabilirsiniz. Ancak ilk başta hiçbir şey çalışmıyor ve Arduino IDE bir hata veriyor.
İşte olay şu. Linux (benim durumumda linux mint) Arduino'yu bir ttyUSB* cihazı olarak algılıyor. Genellikle bu ttyUSB0'dır. Bu komutla öğrenilebilir dmesg terminalde.
Yani sistemde bir arayüz beliriyor /dev/ttyUSB0. Ancak onunla çalışmak için erişim haklarına ihtiyacınız var. Cihaza okuma ve yazma /dev/ttyUSB0 bir kök kullanıcısı ve arama grubu kullanıcıları vardır. Süper kullanıcı haklarıyla çalışmaktan kaçınmak daha iyidir, bu nedenle kullanıcınızı arama grubuna eklemelisiniz. Bu, aşağıdaki komutla yapılabilir (whoami komutunun geri tırnak içinde olduğuna dikkat edin)
sudo usermod -a -G çevirmeli `whoami`
Bundan sonra tekrar giriş yapmanız gerekir. Ardından Arduino IDE'yi başlatın ve “Araçlar-Port” menüsünde yanındaki kutuyu işaretleyin. /dev/ttyUSB0.

Bilgi için teşekkürler Vlad Shemenkov

Bu yazıda, Arduino tarafından geliştirilen ve ATmega16U2, FT232RL gibi standart USB'den UART'a adaptörlere (Arduino IDE klasöründe varsayılan sürücülere sahip olan) sahip kartlar için sürücülerin kurulumuna bakacağız.

Kartın Çince bir versiyonuna sahip olmanız durumunda, dönüştürücü ile birlikte CH340G lütfen bu kılavuzu kullanın

Sürücünün Windows işletim ortamında kurulması

Örnek olarak Arduino UNO için bir sürücü kurulumuna bakacağız.

Arduino UNO ve Arduino Mega kartlarının USB'den UART'a dönüştürücü yongalarla aynı mikro devreleri kullandığı göz önüne alındığında (Atmega 8U2'nin ilk sürümleri, R3 sürümleri zaten 16U2 kullanıyor), kurulum aynı şekilde ilerleyecektir. Benzer şekilde, nano FT232RL'yi dönüştürücü çip olarak kullansa da Arduino nano için her şey gerçekleşecek.

Bölüm 1. Otomatik sürücü kurulumu

Bilgisayarınız İnternet'e bağlıysa, büyük olasılıkla sürücü otomatik olarak yüklenecektir ve makalenin geri kalanını okumanıza gerek kalmayacaktır.

Bölüm 2. Manuel sürücü kurulumu

Böylece ortamı açtıktan sonra Arduino kartını bilgisayara bağlıyoruz. Sürücüler otomatik olarak yüklenmezse aşağıdaki pencereyi göreceksiniz:

Paniğe kapılmayın. Bu yaygın bir durumdur. Sürücünün manuel olarak yüklenmesi gerekecektir.

Bilgisayarım/Özellikler/Aygıt Yöneticisine gidin.

“Bilinmeyen Cihaz”a çift tıklayın.

"Sürücüyü Güncelle"ye tıklayın.

"Bu bilgisayardaki sürücüleri ara"yı seçin.

Arduino IDE'yi kurduğunuz dizini veya daha doğrusu onun alt klasörü olan “drivers”ı belirtiyoruz. "İç içe alt klasörler dahil" onay kutusunu bırakın.

Windows Güvenlik Duvarı her zamanki gibi hazır. "Bu sürücüyü yine de yükle"ye tıklayın.

Bir süre bekliyoruz. İşte bu, sürücüler kuruldu ve kartımız kullanıma hazır.

Bu adımları başarıyla tamamladıktan sonra geriye kalan tek şey IDE’yi açmak, COM bağlantı noktası Tahtaya karar veren, listeden tahtayı seçer ve Arduino'nun ilginç dünyasına dalır.

Bu yazıda Arduino'ya yeni başlayanlar için eksiksiz bir adım adım kılavuz hazırlamaya karar verdim. 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 Arduino IDE'yi indirip yüklemeniz gerekir. Bu çok basit ve kullanışlı bir programdır. 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);

Bu çizimde, temas sıçramasını bastırmak için ek bir geri tepme fonksiyonu oluşturdum. 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 pini 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);

Bu talimatta örnek olarak Windows işletim sistemine başlamayı ele alacağız. Microsoft işletim sistemleri (Windows 2000/Vista) için farklar küçüktür; bunlar esas olarak Aygıt Yöneticisindeki sekmelerin adlarıyla ilgilidir. Linux, FreeBSD, Mac OS X vb. gibi diğer işletim ortamlarında kurulum prosedürü önemli ölçüde farklıdır. Bu yazılımla çalışmayı düzenlemeniz gerekiyorsa, soruların yanıtlarını geliştiricinin ana web sitesinde //www.arduino.cc aramanızı öneririz.

Bağlantılı platform olarak Arduino Uno'yu ele alalım. Diğer kartlarla arasındaki fark minimumdur.

PC ile iletişim için kablo

Verileri kişisel bir bilgisayardan Arduino'ya aktarmak için uygun kabloyu bulmanız gerekir. Kablo ayrı kartlarla birlikte verilmez; yalnızca tasarımcı-programcılar için Arduino başlangıç ​​kitine dahildir.

Arduino UHAYIR, ArduinoMmesela 2560 USB tip A fişli bir kabloyla bağlanırlar.Bu kablo genellikle bir yazıcı veya tarayıcıyı bağlamak için kullanılır.

arduino Leonardo, arduino Vadesi dolmuş Bağlantı için mikro USB B tipi soketleri vardır.

Arduino Nano, Freeduino Nano mini USB tip B soketi ile bağlanır.

Bağlanmak Freeduino MaxSeri 9M-9F seri port kablosuna ihtiyacınız olacak.

Bir problem var : Arduino IDE başlamıyor.

Çare.

Büyük olasılıkla bilgisayarda grafik uygulamaları çalıştırmak için gerekli olan uygunsuz bir JRE (Java Çalışma Zamanı Ortamı) yüklüdür.

Arduino IDE'yi yeniden yüklemeye dönün: bu kez yükleyici JRE'yi kurma işine başlayacaktır.

Arduino kartlarını bilgisayara bağlama

Arduino IDE'yi başarıyla çalıştırdıktan sonra, bazı Arduino platformlarını bilgisayarınıza bağlamanın zamanı geldi. Bildiğiniz gibi Arduino kartlarını PC'ye bağlamak USB kablosuyla yapılıyor.

Arduino konsolunu bilgisayara bağladığınızda bir LED “ON” yanacak ve diğer “L” yanıp sönmeye başlayacaktır. Bu, gücün kablo aracılığıyla sağlandığı ve mikro denetleyicinin fabrikada önceden ayarlanmış Blink programını yürütmeye başladığı anlamına gelir.

Geriye kalan tek şey öğrenmek bilgisayar Arduino kartımıza hangi COM bağlantı noktası numarasını atadı? Arduino IDE yazılımının yeni cihazla doğru çalışması için önemli olan bu.

COM bağlantı noktası numarası “Aygıt Yöneticisi”, “Bağlantı Noktaları (COM ve LPT)” sekmesinde bulunabilir.

Windows sistemlerinde, büyük olasılıkla seri arayüzlü Arduino Uno'muza COM1 veya COM2 bağlantı noktalarından biri atanacaktır. USB denetleyicili bir Arduino için giriş portu COM4, ​​​​COM5, COM6 veya üstü olacaktır.

Linux sistemlerde seri port USB0 veya USB1 olacaktır.

"Aygıt Yöneticisi"nde yeni bir Arduino cihazı görüntülendi - bu, işletim sisteminin kartımızı tanıdığı, onun için uygun bir USB sürücüsü bulduğu ve arayüzüne bir numara atadığı anlamına gelir. Başka bir Arduino kartını birbirine bağlarken ona farklı bir port numarası atanacaktır.

Bir problem var: Arduino kartını bilgisayarınıza bağladığınızda Aygıt Yöneticisinde görünmüyor.

Çare:

  1. USB kablosu veya bağlantı noktası tam olarak takılmamış veya hasarlı.
  2. Bu Arduino kartının sürücüsü yok. Çin Arduino'nuz varsa veya bilinmeyen başka bir üreticiye aitseniz, USB sürücüsünü manuel olarak yeniden yüklemeyi deneyin.
  3. Antivirüs programı tarafından engellendi.
  4. Arduino kartı arızalı.

Açık Arduino IDE'de şuraya gidin: Araçlar > Bağlantı Noktası > COM bağlantı noktası numarasını seçin - programa Arduino mikroişlemci platformunun bağlı olduğu bağlantı noktası numarasını söyleyin.

Arduino IDE ürün yazılımı programının neyle çalışması gerektiği konusunda herhangi bir şüphesi kalmaması için bağlı kartımızın türünü belirtiyoruz. Bunu yapmak için menüye gidin: Araçlar > Kart > Arduino kartınızın türünü seçin.

Bir problem var: Bağlantı Noktası sekmesinde tek bir COM bağlantı noktası yoktur.

Çare.

Açıkçası, Arduino cihazı ile bilgisayar arasındaki bağlantı koptu. PC'nizle istikrarlı bir bağlantı kurun.

Veya sürücü yok. Yazının sonunda indirebilirsiniz.

Arduino cihazının bağlantısı nasıl kontrol edilir

COM portu üzerinden alınan tüm sayısal veriler, Arduino IDE ile aynı kullanışlı grafik ortamında Port Monitörüne gönderilir. Bu nedenle, konsolun sağ üst köşesindeki ilgili “Port Monitörü” simgesine tıklayarak veya Araçlar menüsünde ilgili öğeyi bularak, açılan pencerede değişen numaralardan verilerin USB kablosu aracılığıyla iletildiğini görebilirsiniz. Bu, Arduino kartının güvenli bir şekilde bağlandığı anlamına gelir.

Bağlantı Noktası Monitörü penceresinin alt kısmında COM bağlantı noktası “19200 baud” (19200 bps) ile çalışma hızına ilişkin bilgilerin görüntülendiğini lütfen unutmayın. Bu hız, varsayılan olarak Arduino kartındaki önceden yüklenmiş çizimde ayarlanır. Bu çizim, gerekli herhangi bir baud hızını ayarlayabileceğiniz Serial.begin(19200) satırını içerir, ancak bu yalnızca bir USB kablosuyla çalışırken mümkündür. Veri aktarımı bir Bluetooth radyo kanalı üzerinden gerçekleşirse, COM bağlantı noktasıyla döviz kuru, Bluetooth modülünde hata ayıklarken seçtiğimiz ile tamamen aynı şekilde önceden ayarlanmalıdır.

Bir problem var: Arduino IDE, menülerde gezinirken inanılmaz derecede yavaştır.

Çare.

Aygıt Yöneticisi'ndeki Bluetooth Seri sekmesinde cep telefonunuzla olan Bluetooth bağlantısını kapatın. Bluetooth üzerinden yapılan tüm harici bağlantılar, sanal belleği önemli ölçüde tüketir.

Bağlantı kuruldu, geliştirme ortamı yapılandırıldı - artık elinizde herhangi bir AVR serisi mikro denetleyiciyi flaşlamak için iyi çalışan bir araç var: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM.

Arduino IDE geliştirme ortamı, çeşitli görevler için birçok hazır örneğe sahiptir, ancak kartın yanıp sönmeye karşı duyarlılığını kontrol etmek için, önceden yüklenmiş Blink programında küçük değişiklikler yapmak yeterlidir (karttaki "L" LED'in yanıp sönmesi).

Açık Blink taslağında gecikme(1000) satırında değişikliklerinizi yapmanız, “Yükle” ye tıklamanız ve Arduino kartının çalışmasındaki değişiklikleri tespit etmeniz yeterlidir.

Gecikmeyi (500) ayarladığınızda, “L” LED'i yarım saniyelik bir gecikmeyle iki kat daha sık yanıp sönecektir.

Gecikmeyi (100) ayarladığınızda, “L” LED'i fabrika ayarından 10 kat daha hızlı, yani her 100 milisaniyede bir yanacak ve sönecektir.

Bir problem var : Bir çizim yüklenirken "senkronize değil" gibi bir hata ortaya çıktı.

Çare.

Bu, bağlı Arduino platformunun işletim sistemi tarafından tanınmadığı anlamına gelir. Arduino IDE Araçları menüsünde doğru COM bağlantı noktası numarasını ve kart modelini ayarlama konusuna geri dönün.

Ve son olarak, bazı çevrimiçi Çin pazarından bir Arduino kartı satın aldıysanız, o zaman çoğu zaman kartı bağlarken sorunlar ortaya çıkar - bu sadece tespit edilmez. Bu sorunu çözmek için ustalar bir sürücü yarattı.

Arduino kullanarak güneş panelleri için ev yapımı izleyici