Arduino och Matlab: Låt dem prata med seriell kommunikation! (2 / 4 steg)
Steg 2: Arduino koden!
Fäst här, hittar du filen .ino med skriptet måste du ladda upp på brädan, men eftersom jag sade att detta vill vara en tutorial vars huvudmål är att leda dig direkt till kärnan av den mångsidiga seriell kommunikationen mellan Arduino och Matlab, låt mig kommentera det! (kan du öppna filen .ino i Arduino IDE och följ följande kommentarer i parallell, trust me det kommer hjälpa dig). Jag tycker verkligen inte att fylla skriptet själv med kommentarer, eftersom det resulterar i ett rörigt utseende!
Hoppa över följande rader om du använder en annan sensor, eller ditt syfte för att använda en seriell kommunikation med Matlab är olika! Skriptet start med införandet av DHT biblioteket hittar du fäst också (kopiera .cpp och .h filer i en mapp som heter DHTlib i mappen Bibliotek relaterade till Arduino i din dator, du inte kommer att behöva något annat) och definiera ett par användbara variabler: temp, att lagra temperaturvärde och val, tilldelats de tecken som har skickats av Matlab.
Under konfigurera vi måste ta den riktiga spelaren i spelet: seriell kommunikation initierare. Mer info här >> Arduino följetong. Så skriver vi Serial.begin(9600), där 9600 är överföringshastigheten, nämligen den hastighet som vi vill ha två killar att prata med varandra (vi kommer att ställa samma takt när vi tar hand om Matlab seriell objektet). De några kodrader som följer är bara ett enkelt handslag veta om seriell kommunikation har startat felfritt. Faktiskt kan du utesluta det! Bara inte för att lämna något oklart, med handslag, Arduino skicka tecknet "a" till seriell bufferten, och när Matlab kommer att läsa den visualisera ett "ok meddelande" vi vet att de talar med varandra ordentligt.
Nu låt oss komma till den viktigaste loopen. Arduino har alltid att hålla ögonen öppna på vad det är händer i den seriella porten! Så med linjen
om (Serial.available() > 0)
Vi ber honom att kontrollera så fort han kan, om något har lagts i den berömda seriella bufferten av Matlab, och om det är så, att lagra värdet i variabeln val!
Med den mer ytterligare om loop:
om (val == "R")
vi kontrollera om kommandot skickas via den seriella porten, sammanfaller med den som vi tilldelats sensorn läser. Om även detta villkor är uppfyllt, läsningen funktion getTemperature() lanseras och korrelerade temperatur värdet skickas tillbaka till den seriella buffert med funktionen Serial.println(val) .
Vi har gjort här med Arduino. Du kan ladda upp skissen, och lämna Arduino ansluten via den seriella porten (USB) på datorn. En sista viktig sak: ta reda på namnet på den port Arduino är ansluten till. Du kan kontrollera det genom att gå till "instrument" i Arduino IDE, och kontrollera vilken port är förkryssat i övre menyn heter "port". Anteckna namn, vi kommer att använda det senare! Om du är en Windows-användare, det kommer vara något som "COM1" eller "COM2" ecc., om du använder MAC, kommer det vara något som "/ dev/tty. KeySerial1 ".