Arduino programlama dili. Arduino programlama Arduino board uygulamasında programlama

Tarihsel olarak, Arduino yazılımının, donanım kısmı için kod yazmanıza, derlemenize ve oluşturmanıza olanak tanıyan entegre bir yazılım motorundan (IDE) oluştuğu görülmüştür. ArduinoIDE ortamı ve Kablolama dilinin kendisi öncelikle İşleme'ye ve tesadüfen C/C++'ya dayanmaktadır. Esasen, Arduino IDE harika bir karmakarışıklıktır, kahkaha uğruna değil, kullanışlılık adına.

Arama yaparduinoIDEİşleme benzer


Bir program (eskiz) nelerden oluşur?
Göründüğü kadar basit olan cilt programı birkaç setten oluşur bloklar Kıvrımlı yaylarla () gösterilen kod. Minimal bir program için yalnızca 2 bloğa ihtiyacınız vardır: kurulum ve döngü. Arduino için herhangi bir C++ programında varlığı zorunludur, aksi takdirde derleme aşamasında hatayı kaldırabilirsiniz.
void setup() ( ) void loop() ( )
setup() fonksiyonu değişken yazmaçların başlangıç ​​ayarlarına izin verir. setup() kontrolünü tamamladıktan sonra, gövdede yazılan (( ) arası) tamamlanmamış bir döngü olan loop() fonksiyonuna gidin. Bu komutlar, denetleyicinin tüm algoritmik eylemlerinden sorumludur.

Donanım "Merhaba, dünya! - LED aydınlatma.
Yazılım ve donanım kısmındaki çubukta Arduino'nun ilk bilgisinin başladığı yer yanıp sönen LED'dir.


Şu andan itibaren minimum programı tamamlamanız gerekecek. Arduino için (örneğin UNO), bir LED'e 12'ye kadar pin ve GND bağlanır (LED'in rengi özel avantajlara göre seçilir).

Void setup() ( pinMode(12, OUTPUT); ) void loop() ( digitalWrite(12, YÜKSEK); gecikme(100); digitalWrite(12, DÜŞÜK); gecikme(900); )
Robimo Ctrl + C -> Ctrl + V, derlenebilir, büyüleyici, panuema. Bir saniyeden fazla sürmeyen Bachimo ışığı. Neden böyle hissettiğini anlayalım.

Daha önce boş bloklar eklendi Viraziv . Sesler, kurulum ve döngü işlevi kullanılarak kavisli kolların arasına yerleştirilir.
Cilt virüsü - işlemci için talimatlar. Bir blok içindeki Viraziler, herhangi bir duraklama veya mırıldanma olmadan, kesinlikle sırayla eklenir. Dolayısıyla, belirli bir kod bloğundan bahsediyorsak, ne yapmanız gerektiğini anlamak için onu okuyabilirsiniz.

Arasında neler beklenebilir?{ } ?
Gördüğünüz gibi Arduino pinleri hem çıkışı hem de girişi işleyebiliyor. Kendimizi arındırmak istiyorsak o zaman işimizi çıkışa kaydırmamız gerekiyor. Fonksiyonu kullanmak önemlidir kurmak:
pinMode(12, ÇIKIŞ); Bu durum virüsü etkiliyor tıklama işlevleri . PinMode, iş modunda (GİRİŞ veya ÇIKIŞ) iş pin numarasını ayarlar. Ne tür bir pime ve ne tür bir moda gideceğinizi yuvarlak kollarla kimin aracılığıyla belirtin. Bizim durumumuzda çıkış yolu olarak 12 günün çalışmasını istiyoruz. ÇIKIŞ, çıkış anlamına gelir, GİRİŞ ise giriş anlamına gelir. 12 ve OUTPUT gibi değerlerin belirtilmesine denir fonksiyon argümanları . Yaratıcının işlevinin ve iradesinin özünde argümanların kaç işlevi yatmaktadır? Fonksiyonlar kurulum ve döngü uygulamasında olduğu gibi argümansız olabilir.

Daha sonra sırasıyla döngü bloğuna geçiyoruz:
- yeni digitalWrite fonksiyonuna tıklayın. VON, pin atamalarını mantıksal sıfır (DÜŞÜK, 0 volt) veya mantıksal sıfır (YÜKSEK, 5 volt) ile sağlayacak şekilde tasarlanmıştır. digitalWrite işlevi 2 argüman iletir: pin numarası ve mantıksal değer.
-gecikme fonksiyonuna tıklayın. Bir kez daha işlemcinin erken saatte uyku moduna geçmesini sağlayacak bir fonksiyon getirildi. Vaughn yalnızca bir argümanı kabul ediyor: milisaniye cinsinden bir saat, bu da uykunun bir işaretidir. Vipadka'mızın 100 ms'si var. 100 ms tamamlanır tamamlanmaz işlemci sıfırlanır ve anında en güncel virüse geçiş yapılır.
- Yeni digitalWrite fonksiyonuna tıklayın. Diğer tek argüman DÜŞÜK'tür. Daha sonra 12. pine mantıksal sıfır koyuyoruz -> 0 volt veriliyor -> LED sönüyor.
- Gecikme fonksiyonuna tıklayın. Bu sefer biraz daha uzun süre uyuyoruz – 900 ms.

Geriye kalan fonksiyon sonlandırıldığı anda döngü bloğu sona erer ve her şey yeniden başlar. Aslında uygulamada sunulan fikirler oldukça değişkendir ve gecikme değerleriyle oynayabilir, bir grup LED bağlayabilir ve trafik ışığı veya polis flaşörü gibi bir şey oluşturabilirsiniz (hepsi sizin hayal gücünüzde ve yaratıcının iradesinde) ).

Nemle değiştirme, biraz temizlik hakkında.
Aslında tüm boşluklar, satır sonları ve sekme karakterleri derleyici için çok önemli değildir. Geçişin olduğu yerde sıra yanlışlıkla hareket ettirilebilir. Aslında, 10 açıklık, 2 aktarılan satır ve 5 açıklık daha vardır - hepsi bir açıklığa eşdeğerdir.


Biraz ekstra alanla, akıllıca ve doğru bir şekilde bir program oluşturabilirsiniz, aksi takdirde program belirsizliğe düşebilir. Örneğin popo olarak belirlenmiş bir 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); )

Okurken kimsenin gözünün kanamamasını sağlamak için birkaç basit kurala uyabilirsiniz:


1. İlk olarak, aradaki yeni bir bloğun koçanı üzerinde(і) erişimi artırın. Zazvichay vikoristuyut 2 veya 4 probil. Bir değer seçin ve onu burada takip edin.

Void döngüsü() ( digitalWrite(12, YÜKSEK); gecikme(100); digitalWrite(12, DÜŞÜK); gecikme(900); )
2. Orijinal dilde olduğu gibi: com'dan sonra bir boşluk koyun.

digitalWrite(12, YÜKSEK);
3. Sembolü bloğun başlangıcına (girişin akış seviyesinde yeni bir satıra veya bir öncekinin sonuna. Ve blok sonu sembolü) bloğun akış seviyesindeki bitişik satıra yerleştirin. giriş:

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

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 buna yorum diyoruz. Program kodunda, derleyici tarafından tamamen göz ardı edilen ve onu okuyan kişi için çok az anlam ifade eden yapılar vardır. Yorumlar çok satırlı veya tek satırlı olabilir:

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

Arduino programlama için komut filmi

Parametre adı Önem
İstatistik konusu: Arduino programlama için komut filmi
Değerlendirme listesi (tematik kategori) Programlama

Arduino programlamam C'ye dayanıyor. Bu filmdeki komutları görmek istiyorsanız programınızın ortasındaki menü komutunu seçin. Dovidka / Zmist. Komutlar üç bölüme ayrılmıştır:

· Yapı: program yapısını yazmaya yönelik komutlar - döngüler, ayrıştırma, sözdizimi, aritmetik ve mantıksal operatörler, eşitleme operatörleri ve bit manipülasyonu

· Değişkenler: farklı varyasyonlar. Benzer sorunlar C'de de bulunurken Arduino birkaç püf noktasıyla karakterize edilir:

Ö YÜKSEK- Arduino kontağında yüksek ravent, mantıksal 1, +5 Volt

Ö DÜŞÜK– Arduino pininde düşük seviyeli, mantıksal 0,0 Volt

Ö GİRİŞ– Arduino pinini giriş olarak atamak (harici cihazlardan bilgi almak)

Ö ÇIKTI– bir Arduino kontağını çıkış olarak atamak (harici cihazlara bilgi aktarmak, güç ünitelerini bağlamak)

· Fonksiyonlar: Arduino'lu robotlarda kullanılan fonksiyonlar ilerideki derslerde detaylı olarak ele alınacaktır.

Not 1: yapı C bilgisayar programınınkine benzer, böylece bu dili bilirsiniz - Arduino programlamada kolayca ustalaşabilirsiniz ve aynı şekilde Arduino dil programında ustalaşmak, bilgisayar dilinde ustalaşmanıza yardımcı olacaktır.

Not 2: Ortada yer alan talimatlardaki komutların açıklamaları İngilizce olarak verilmiştir, bu da zor olabilir. Açıklamaların Arduino.ru web sitesinde Rusça diline çevrilmesi

Not 3: Programdaki komutun açıklaması bu komutu görüp seçerek görüntülenebilir Dovidka / Dovidka'dan biliyorum.

Arduino programlama filmi söz dizimi

Benzer bir zafer filmde de yer alıyor:

· ; - komada benek. Satırın sonunu belirtir. Vikoristan'ın poposu:

int led = 13;

her zaman; Hatta Arduino’da bir program indirmeye çalıştığınızda program indirilmeyecek ve pencerenin alt kısmında bir işaret göreceksiniz.

· { } - yuvarlak kollar. Açılan yay bloğun başlangıcıdır, kapattığı ise bloğun sonudur

geçersiz kurulum () {

pinMode(led, ÇIKIŞ);

· / / - Yorumlar. Bu sembollerden sonraki satıra yazılanlar kontrolör tarafından kabul edilmediğinden programcı için notlar

gecikme(1000); // Bir saniyeyi kontrol eder (1000 milisaniye)

· #katmak<назавние библиотеки.h> – kitaplığın bağlanması – örneğin bir LCD göstergeli bir dizi program:

#katmak

Not: sonrasında komaya giren benek # içermesine gerek yoktur.

Arduino'yu komuta edin ve programlayın - anlayın ve görün. "Arduino programlama komutları" kategorisinin sınıflandırılması ve özellikleri 2017, 2018.

Girmek

Freeduino/Arduino, C/C++ tabanlı özel bir yazılımla programlanmıştır ve herhangi bir işlevini özelleştirmenize olanak tanır. Açıkça konuşursak, tıpkı Arduino derleyicisi olmadığı gibi Arduino dili de yoktur; yazılı programlar (minimum değişikliklerle) bir C/C++ programına ve ardından AVR-GCC derleyicisi tarafından dönüştürülür. Yani aslında C/C++ sürümünde AVR mikrokontrolörlerine yönelik bir uzmanlık bulunmaktadır.

Aradaki fark, basit bir orta geliştirmeyi ve "yerleşik" mikro denetleyici çevre birimlerine erişimi kolaylaştırmak için bir dizi temel kitaplığı kaldırmanızdır.

Durun bir dakika, tek satıra tıklayarak son porta sahip bir robota saniyede 9600 bit hızında kolayca mesaj gönderebilirsiniz:

Seri.begin(9600);

Ve eğer "çıplak" C/C++'ı seçerseniz, mikro denetleyicinin belgelerine bakmanız ve şunun gibi bir şeye tıklamanız gerekir:

UBRR0H = ((F_CPU / 16 + 9600 / 2) / 9600 - 1) >> 8;
UBRR0L = ((F_CPU / 16 + 9600 / 2) / 9600 - 1);
sbi(UCSR0B, RXEN0);
sbi(UCSR0B, TXEN0);
sbi(UCSR0B, RXCIE0);

Arduino programlamanın ana işlevlerine ve özelliklerine kısa bir bakış. C/C++ dil sözdizimine aşina değilseniz, lütfen bu diyetteki veya İnternet sitesindeki literatüre bakın.

Öte yandan, tüm uygulamalar çok basittir ve büyük olasılıkla, ek literatür okumadan çıktı metinlerini anlama ve güç programları yazma konusunda herhangi bir zorluk yaşamayacaksınız.

Daha fazla belge (İngilizce) projenin resmi web sitesinde sunulmaktadır - http://www.arduino.cc. Ayrıca bir forum, ek kütüphaneler ve bunların açıklamaları hakkında bir yazı da bulunmaktadır.

Arduino projesinin resmi web sitesindeki açıklamaya benzer şekilde port, mikro denetleyicinin kontağını, seri numarası altındaki konnektöre giden çıkışları ifade eder. Diğer tarafta seri port (COM portu) bulunmaktadır.

Program yapısı

Programınızın iki ana işlevi olmalıdır: setup() ve loop().

setup() işlevi, arayüz açıldıktan veya Freeduino ödemesi kaldırıldıktan sonra bir kez çağrılır. Değişiklikleri başlatmak, dijital bağlantı noktası modlarını ayarlamak vb. için bunları kullanın.

loop() işlevi, gövdesinde açıklanan komutları hemen takip eder. Tobto. Fonksiyon tamamlandığında zil tekrar çalacaktır.

Basit bir popoya bakalım:

void setup() // İlk kurulumlar
{
başlarSerial(9600); // Seri portun hızını 9600 bps olarak ayarlıyoruz
pinMode(3, INPUT); // 3. portu veri girişini kabul edecek şekilde ayarlayın
}

// Program üçüncü bağlantı noktasını yeni bir sinyalin varlığı açısından kontrol eder ve bir yanıt gönderir
// bilgisayarın seri portundaki metin bildirimini görüntüle
void loop() // Tam program
{
if (digitalRead(3) == YÜKSEK) // 3. portta Umova
seriYaz("H"); // COM portunda “N” harfinin görünürlüğünün güçlendirilmesi
başka
seriYaz("L"); // COM portunda “L” harfinin görünürlüğünün güçlendirilmesi
gecikme(1000); // 1 saniye kırp.
}

pinMode(bağlantı noktası, mod);

Tanım:

Bir sinyalin girişi veya çıkışı için gösterge bağlantı noktasını yapılandırır.

Parametreler:

port – port numarası, ayarlamak istediğiniz mod (0'dan 13'e kadar tam sayı türü değerleri).

modu - ya GİRİŞ (giriş) ya da ÇIKIŞ (çıkış).

pinMode(13, ÇIKIŞ); //13. visnovok çıkış olacak
pinMode(12, INPUT); //ve 12.si girdidir

Not:

Analog girişler, 14 (analog giriş 0) ila 19 (analog giriş 5) arası sayılar atandığında dijital giriş/çıkış olarak kullanılabilir.

digitalWrite(bağlantı noktası, değer);

Tanım:

Belirtilen bağlantı noktasında yüksek (YÜKSEK) veya düşük (DÜŞÜK) voltaj düzeyini ayarlar.

Parametreler:

bağlantı noktası: bağlantı noktası numarası

değer: YÜKSEK veya DÜŞÜK

digitalWrite(13, YÜKSEK); // 13. visnovok'u "yüksek" kampa yerleştirin

değer = digitalRead(bağlantı noktası);

Tanım:

Belirtilen porttaki değerleri okur

Parametreler:

port: kayıtlı portun numarası

Döndürülecek değerler: int türündeki bağlantı noktasındaki tam değeri (YÜKSEK veya DÜŞÜK) döndürür

int değer;
val = digitalRead(12); // opituemo 12. visnovok

Not:

Okuma bağlantı noktasına bağlı hiçbir şey yoksa, digitalRead() işlevi, değerleri YÜKSEK veya DÜŞÜK olarak kolayca döndürebilir.

Analog sinyal girişi/çıkışı

değer = analogRead(bağlantı noktası);

Tanım:

Atanan analog porttan değerleri okur. Freeduino'nun her biri 10 bitlik analogdan dijitale dönüştürücü olan 6 kanalı vardır. Bu, 0 ila 5V arasındaki giriş voltajının 0 ila 1023 arasında bir tam değere dönüştürüldüğü anlamına gelir. Ayrı okuma değeri şu şekilde ayarlanır: 5 V/1024 değeri = 0,004883 V/değer (4,883 mV). Analog giriş değerlerini yakalamak yaklaşık 100 nS (0,0001 C) alır, dolayısıyla maksimum okuma hızı saniyede yaklaşık 10.000 defadır.

Parametreler:

Döndürülecek değerler: atanan bağlantı noktasıyla işlenen, 0 ila 1023 aralığındaki int tipindeki bir sayıyı döndürür.

int değer;
val = analogRead(0); // 0. analog girişteki değeri oku

Not:

Analog standart bağlantı noktaları, sinyal girişi ve dijital bağlantı noktaları olarak değiştirilmesi için tasarlanmıştır ve pinMode işlevi için yapılandırılmalarına gerek yoktur.

analogWrite(bağlantı noktası, değer);

Tanım:

Analog değerlerin bağlantı noktasına çıkışı. Bu işlev şu cihazlarda çalışır: 3, 5, 6, 9, 10 ve 11 Freeduino dijital bağlantı noktası.

LED'in parlaklığını değiştirmek, motoru temizlemek vb. için kullanılabilirler. AnalogWrite işlevinin çağrılmasından sonra çıkış bağlantı noktası, analogWrite işlevi (veya aynı bağlantı noktasında digitalRead/digitalWrite işlevi) çağrılana kadar voltaj darbe genişliği modülasyonu modunda çalışmaya başlar.

Parametreler:

port: bağlı analog girişin numarası

değerler: 0 ile 255 arasında tamsayı. 0 değerleri, belirlenen portta 0 üretir; 255 değeri belirlenen bağlantı noktasında +5 üretir. 0 ile 255 arasındaki değerler için, port 0 ile +5 arasında bir voltaj seviyesi üretmeye başlar - değer ne kadar yüksek olursa, port o kadar sıklıkla YÜKSEK bir seviye (5 V) üretir.

analogWrite(9, 128); // pin 9'a 2.5V'a eşdeğer değer takıldı

Not:

AnalogWrite işlevini çağırmadan önce bağlantı noktasını çıkış sinyallerine ayarlamak için pinMode işlevini çağırmaya gerek yoktur.

Sinyal üretim frekansı yaklaşık 490 Hz'dir.

zaman = milis();

Tanım:

Freeduino iş parçacığı programının yüklenmesinden bu yana geçen milisaniye sayısını döndürür. Doktor yaklaşık 9 yıl sonra sıfırlanıp sıfırlanacak.

Döndürülecek değerler: unsigned long türündeki değerleri döndürür

uzun süredir imzasız; // sersemletme süresi değişikliği türü unsigned long
zaman = milis(); // birkaç milisaniyeyi aktar

gecikme (hour_ms);

Tanım:

Programı belirtilen milisaniye kadar duraklatır.

Parametreler:

hour_ms – milisaniye cinsinden program kapatma saati

gecikme(1000); //1 saniye duraklat

gecikmeMikrosaniye

gecikmeMikrosaniye(saat_μs);

Tanım:

Programı belirtilen sayıda mikrosaniye boyunca duraklatır.

Parametreler:

hour_μs – mikrosaniye cinsinden program kapatma saati

gecikmeMicroseconds(500); //500 mikrosaniye duraklat

pulsIn(bağlantı noktası, değer);

Tanım:

Dijital porttan nabzı (yüksek veya düşük) okur ve nabzın değerini mikrosaniye cinsinden dönüştürür.

Örneğin, ayar fonksiyonu seçildiğinde “value” parametresi HIGH olarak ayarlanırsa, portta yüksek bir sinyal seviyesi tespit edilirse darbeIn() duracaktır. Bu görev, bağlantı noktası düşük bir sinyal düzeyi bulana kadar mümkün olan en kısa sürede başlar. Fonksiyon, darbeyi (yüksek seviye) mikrosaniye cinsinden döndürür. 3 dakikaya kadar 10 mikrosaniyelik darbelerle çalışır. Bu fonksiyonun darbe algılanana kadar sonucu tersine çevirmeyeceğini lütfen unutmayın.

Parametreler:

port: darbenin okunduğu port numarası

Değerler: darbe türü YÜKSEK veya DÜŞÜK

Döndürülecek değerler: darbe süresini mikrosaniye cinsinden döndürür (int türü)

int süre; // int türünün çarpıcı süresi
süre = darbeIn(pin, YÜKSEK); // Canlı ve önemsiz bir dürtü

Sıralı veri iletimi

Freeduino, Freeduino/Arduino cihazları arasındaki iletişim ve bir bilgisayarla iletişim için kullanılabilecek seri veri aktarımı için bir denetleyici kullanabilir. Bilgisayarda harici bağlantı bir USB COM bağlantı noktasıyla temsil edilir.

İletişim 0 ve 1 numaralı dijital bağlantı noktalarından yapılır ve seri veri aktarım işlevlerini kullanıyorsanız bunları dijital G/Ç için kullanamazsınız.

Seri.begin(iletim_hızı);

Tanım:

COM bağlantı noktasına bilgi aktarım hızını, seri veri aktarımı için saniyedeki atış sayısını ayarlar. Bilgisayarınızla bağlantıları sürdürmek için şu standart hızlardan birini kontrol edin: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 veya 115200. bağlantı noktaları 0 ve 1.

Parametreler:

iletim_hızı: saniye başına bit cinsinden veri akış hızı.

Seri.begin(9600); //hızı 9600 bit/sn olarak ayarladık

Seri.mevcut

count = Serial.available();

Tanım:

Seri porttan alınan baytlar mikrodenetleyici arabelleğine gönderilir, böylece programınız bunları okuyabilir. İşlev, arabellekte biriken bayt sayısını döndürür. Seri arabellek 128 bayta kadar depolayabilir.

Dönen anlamı:

İnt türünün değerlerini döndürür - seri arabellekte okunabilecek bayt sayısı, aksi takdirde 0, hiçbir şeyin mevcut olmadığı anlamına gelir.

if (Serial.available() > 0) ( // Arabellekte veri var
// burada haraç alıp toplayabiliriz
}

char = Seri.read();

Tanım:

Seri bağlantı noktası arabelleğindeki sonraki baytı okur.

Dönen anlamı:

Seri bağlantı noktasından gelen giriş verilerinin ilk kullanılabilir baytı, aksi takdirde -1'de giriş verisi yoktur.

gelenByte = Serial.read(); // bayt oku

Tanım:

Seri portun giriş arabelleğini temizler. Arabellekteki veriler tüketilir ve Serial.read() veya Serial.available()'a yapılacak sonraki çağrılar, Serial.flush() çağrısından sonra getirilen veriler için ana algılama olacaktır.

Seri.flush(); // Tamponu temizle - "sıfırdan" veri almaya başla

Tanım:

Son porta veri gönderiliyor.

Parametreler:

İşlev, görüntülenen verinin türüne ve biçimine göre bir dizi arama formu seçmenize olanak tanır.

Serial.print(b, DEC), ASCII sırasını yazdırır - b sayısının onda biri.

int b = 79;

Seri.print(b, HEX), ASCII sırasını yazdırır - b sayısının on altıncı tezahürü.

int b = 79;

Seri.print(b, OCT), b sayısının en önemli tezahürü olan ASCII dizisini yazdırır.

int b = 79;
Seri.print(b, OCT); //bağlantı noktasında “117” satırı var gibi görünüyor

Serial.print(b, BIN), ASCII dizisini yazdırır - b sayısının çift ifadesi.

int b = 79;
Seri.print(b, BIN); // "1001111" bağlantı noktası satırına bakın

Serial.print(b, BYTE) b'nin düşük baytını yazdırır.

int b = 79;
Seri.print(b, BYTE); //Viveda numarası 79 (bir bayt). Monitörde
//"O" karakteri seri porttan kaldırıldı - yogo
//önceki kod 79

str için Serial.print(str) – bir satır veya karakter dizisi, str'yi bayt bayt COM bağlantı noktasına aktarır.

karakter baytları = (79, 80, 81); //79,80,81 değerlerine sahip 3 baytlık dizi
Serial.print("İşte baytlarımız:"); // "İşte baytlarımız:" satırını görüntüle
Seri.print(bayt); //79,80,81 kodlu 3 karakteri görüntüle -
// bu sembol "OPQ"

Seri.print(b) b, bayt veya karakter türündeyse, b sayısının kendisini yazdırın.

karakter b = 79;
Seri.print(b); //portta “O” sembolü var gibi görünüyor

Serial.print(b) b bir tam tür ise, onuncu bağlantı noktasına b sayısını yazdırın.

int b = 79;
Seri.print(b); //bağlantı noktasında “79” satırı var gibi görünüyor

Tanım:

Serial.println işlevi Serial.print işlevine benzer ve aynı çağrı seçeneklerine sahiptir. Tek fark, verilerden sonra ek olarak iki sembolün görüntülenmesidir: taşıyıcı döndürme sembolü (ASCII 13 veya "r") ve yeni satır sembolü (ASCII 10 veya "n").

Uç 1 ve uç 2 aynı bağlantı noktasına girer:

int b = 79;
Seri.print(b, DEC); //bağlantı noktasında “79” satırı var gibi görünüyor
Seri.print("r"); //vive sembolü "\r\n" – satırın tersine çevrilmesi
Seri.print(b, HEX); //bağlantı noktasında “4F” satırı var gibi görünüyor
Seri.print("\r\n"); // Vivede sembolü "\r\n" – satırın tersine çevrilmesi

int b = 79;
Seri.println(b, DEC); //bağlantı noktasında “79 n” satırı var gibi görünüyor
Seri.println(b, HEX); //bağlantı noktasında “4F\n” satırı var gibi görünüyor

Monitörde seri bağlantı noktası devre dışı bırakıldı.

BT'de yolunuza başlamak çok zor olabilir çünkü bu kadar çok teknolojiye hayran olduğunuz için yazılıma olan "ilginç" ilginizi güçlendirmek imkansızdır. Bir yandan sensörler ve sonsuz yetenekler olmadan tamamen yeni bir görünüme sahip bir cihaz yaratmak, diğer yandan işlevsellikten yoksun kalmadan hız kodunu en üst düzeye çıkarmayı amaçlayan veri işlemenin gizemini yaratmak gerekiyor. Arduino, devre tasarımı konusunda derinlemesine bilgi veya tam programlama gerektirmeyen büyük başarılara giden ilk adımdır.

Arduino nedir?

Nesneleri özel isimleriyle adlandırırsak Arduino, kendi imajlarından bıkmış ve hayatlarına biraz da olsa bir şeyler katmak isteyenler için bir kurucudur. Arduino'nun en basit versiyonunda bir kart, demonte bir kontrolör, bir kristal osilatör, bir ADC/DAC, bir dizi konektör, diyot ve düğme bulunur. Rashta hükümdarın sağındadır: İsterseniz bir robot yaratın, isterseniz “akıllı” bir kabin için bir yazılım ve donanım platformu oluşturun, ancak pratik maliyeti unutun ve eğlenin.

Elbette bilmek önemlidir. Deneylerinizde ne kadar ileri gitmek istiyorsanız, filtrelenmiş memnuniyeti ne kadar ortadan kaldırmak istiyorsanız ve Arduino ile para için bir platform oluşturmak istiyorsanız, hem tasarıma hem de programlamaya iyice aşina olmanız gerekecek. Günün geri kalanı hakkında rapor verin.

Arduino, özellikle Raspberry Pi ile kullanıldığında çok çeşitli programlama yeteneklerine sahip bir platformdur. Giriş eşiğinin aşırı derecede düşük olması nedeniyle (temel Eğitim, A4 formatında 3 yuvayı kaplar), ek modüller bağlanmadan yeterli kaynağın elde edilmesi mümkün değildir. Buradaki temel C/C++'dır, ancak çeşitli IDE'ler ve kütüphanelerle Python, C#, Go işletim sistemlerinin yanı sıra Snap! gibi çocukça maceralara da erişebilirsiniz. şu ArduBlock. Onları kimlerin zafer kazanacağını, kimin kazanacağını konuşalım.

C/C++

Arduino platformunun temel dili, çeşitli bileşenleri ve basitliği ile standart yazılım kabuğuna benzer. Mevcut tüm komutları "yeni başlayanlar için" bulabilirsiniz, ancak hiç kimsenin C++ dilinin öne çıkan yeteneklerini hızlı bir şekilde kullanmanıza ihtiyacı yok, ekstra çabaya gerek yok. "Temiz" C ile oynamak gerektiğinden, hizmetlerinizden önce program, adından da anlaşılacağı gibi, Arduino'da kullanılan Windows işletim sistemi ve AVR serisi MK'lerin etkileşimi için tasarlanmıştır. Raporu eksenden okuyabilirsiniz.

Ardublok

Yakında en sevdiğimiz çocuğumuz Scratch'e ve daha da önemlisi onun uyarlaması Ardublock'a büyüdüğümüzü göreceğiz. Burada platformunuza uyum sağlama dışında her şey aynı: renk blokları, kurucu, Rusça isimler, basit mantık. Bu seçenek programlamaya hiç aşina olmayanlar için harikalar yaratacaktır. Tıpkı Mov Logo'da sanal bir kaplumbağayı sanal bir uçakla hareket ettirebildiğiniz gibi, burada da basit operasyonların yardımıyla çocuğun program eylemlerinin gerçek bir yorumunu almasını sağlayabilirsiniz.

Bu nedenle, konuşmadan önce vikoristan için Arduino IDE'yi standart çekirdeğe kurmanız gerekiyor. Kalan versiyonlar yayınlanmayacak, katlanacak, çoğunlukla 2013 sonu tarihli. Ekleri yüklemek için dosya ardublock-all olarak yeniden adlandırılıp Belgelerim/Arduino/tools/ArduBlockTool/tool ​​klasörüne yerleştirilir. Eğer yoksa yaratılır. Eğer anlamadılarsa eksen bildirilir.

Patlatmak!

Ardublock'tan değiştirildi, Snap! Ek blokların görünümünde, listeleri ve işlevleri seçme olasılığında bir artış var. Tobto Snap! genel olarak ve genel olarak olgun dil programlamaya benzer; daha önce olduğu gibi kodu yapıcıda oynatmanız gerekmesine bakılmaksızın.

Bununla ilgili daha fazla bilgi edinmek için snap4arduino.org web sitesine gitmeli ve işletim sisteminiz için gerekli bileşenleri satın almalısınız. Kurulum, vikoristan ve video uygulamaları için talimatlar hemen mevcuttur.

Python

Resmi olarak, isterseniz Piet'i kullanarak Arduino'da programlayabilirsiniz, çünkü uygun özveriyle onu makine kodunda derleyeceksiniz. Ancak Python'un pratik olarak optimal karmaşıklığa sahip en popüler dillerden biri olması nedeniyle Arduino'da bu engellemeden kaçınmak aptallık olacaktır. Python eğitimini catfree'mizden alabilirsiniz.

Peki neden PySerial kütüphanelerine (daha önce bunları bilgisayar portlarıyla entegrasyon için kullanıyor olabilirsiniz) ve vPython'a ihtiyacınız var? Her şeyi nasıl doğru şekilde ayarlayacağınızı ve sonunda nasıl çalışacağınızı kesinlikle okuyabilirsiniz.

Git ve diğer diller.

Arduino'nun Python ile PySerial kütüphanesi aracılığıyla iletişim kurması gibi, siz de Java ile, Java ile veya istediğiniz herhangi bir şeyle iletişim kurabilirsiniz. Arduino popüler bir platformdur, dolayısıyla manuel dili seçmek gibi sıradan yiyecekler öğrenciyi çıkmaza sokmaz. Küçük bir ücret karşılığında bir güç komisyoncusundan ihtiyacınız olan tek şey, bunun hakkında düşünmektir ve kaçınılmaz olarak kullanışlı bir araç bulacaksınız.

Ardublock, yeni başlayanlara yönelik, Arduino için grafiksel bir programlamadır. Bu merkezi parçayı vikoristandan almak kolaydır, kurulumu kolaydır ve neredeyse tamamen Rusça ile kaplıdır. Blokları tahmin eden, görsel olarak tasarlanmış bir program...

Değişim, harici cihazların denetleyiciyle farklı şekillerde etkileşime girmesine izin veren Arduino'nun önemli bir mekanizmasıdır. Taslakta donanım analizörünü kurarak, basılan veya basılan düğmelere, klavyedeki baskıya,...

Serial.print() ve Serial.println(), Arduino'nun ana işlevleridir ve bilgileri Arduino kartından bilgisayara seri port aracılığıyla aktarır. En popüler Arduino Uno, Mega, Nano kartlarında yerleşik bir ekran yoktur, bu nedenle...

Arduino'ya ödeme yapmadan Arduino projelerini nasıl yapabilirsiniz? Tamamen görünüyor. Kendi adlarıyla anılan birçok çevrimiçi hizmet ve program vardır: emülatör veya Arduino simülatörü. Bu tür programların en popüler temsilcileri...

Seri başlatma çok önemli bir Arduino talimatıdır, harici cihazlarla denetleyici bağlantısı kurmanıza olanak tanır. Çoğu zaman, böyle bir harici cihaz, Arduino'yu bağladığımız bir bilgisayardır. Bu yüzden Seri daha yoğun başlıyor...

Küresel bir Arduino değişikliği, kapsamı programın tamamına yayılan ve tüm modüller ve işlevlerde görülebilen bir değişikliktir. Bu yazıda küresel değişikliklerin bir dizi uygulamasına bakacağız...

Arduino dizisi, programcılar tarafından benzer veri kümeleriyle çalışmak için aktif olarak kullanılan bir dil öğesidir. Arduino başta olmak üzere hemen hemen tüm diller programlanmıştır, sözdizimi çok benzerdir.

Programların kurulumu