Stap 2: De code van de Arduino!
Hier bijgevoegd, vindt u het Ino bestand met het script hebt om te uploaden op uw bord, maar omdat ik zei dat dit wanna be een tutorial met als belangrijkste doel is om u te leiden direct tot de kern van de veelzijdige seriële communicatie tussen de Arduino en Matlab, laat mij het commentaar! (u kunt het Ino bestand in de Arduino IDE openen en volg de volgende opmerkingen in parallel, vertrouwen me het zal u helpen). Ik echt willen niet vullen het script zelf met Krabbels, aangezien hierdoor in een rommelige look!
Sla de volgende regels als u een andere sensor gebruikt, of je doel voor het gebruik van de seriële communicatie met Matlab anders is! Het script start met de opneming van de bibliotheek van de DHT u vindt ook gekoppeld (Kopieer de .cpp en .h -bestanden in een map met de naam DHTlib in de omslag van de bibliotheken in verband met Arduino op uw PC, u niet gaat om iets anders nodig hebt) en een aantal nuttige variabelen definiëren: temp, voor het opslaan van de temperatuur, en val, toegewezen aan de tekens dat is verzonden door Matlab.
We moeten in het gedeelte instellen opnemen van de real player van het spel: initializer seriële communicatie. meer info hier >> Arduino Serial. Dus schrijven we Serial.begin(9600), waar 9600 de baud-rate, namelijk de snelheid waarmee wij willen de twee jongens om te praten met elkaar is (we zullen hetzelfde tarief ingesteld wanneer we voor de seriële Matlab-object zorgt). De enkele coderegels die volgen zijn gewoon een simpele handdruk te weten als de seriële communicatie vlekkeloos is begonnen. Eigenlijk kunt u uitsluiten dat het! Gewoon niet te laten om het even wat onduidelijk, met de handdruk, Arduino verzenden het karakter 'a' naar de seriële buffer, en als Matlab zal lezen het visualiseren van een "ok"-bericht zullen we weten dat ze goed met elkaar zijn praten.
Nu laten we komen tot de hoofdlus. Arduino heeft altijd om een oogje wijd open op wat er gebeurt in de seriële poort! Dus met de lijn
Als (Serial.available() > 0)
Wij vragen hem te controleren zo snel als hij kan, als iets in de beroemde seriële buffer door Matlab is gebracht, en als dat het geval, de waarde in de variabele valte slaan!
Met de verdere als lus:
Als (val == 'R')
controleren we of de opdracht die is verzonden via de seriële poort, samenvallen met degene die wij toegewezen aan de sensor lezen. Als zelfs deze voorwaarde is voldaan, de lezing functie getTemperature() wordt gestart, en de gecorreleerde temperatuur wordt teruggestuurd naar de seriële buffer met de Serial.println(val) functie.
Hier zijn we klaar met Arduino. U kunt uploaden van de schets, en laat de Arduino aangesloten via de seriële poort (USB) op de computer. Een laatste belangrijk ding: Zorg ervoor dat u weet de naam van de Arduino is aangesloten op poort. U kunt het controleren door naar "instrument" in de Arduino IDE, en controleren welke poort is aangevinkt in de top-down menu met de naam "port". Noteer de naam, we zullen het later gebruiken! Als u een Windows-gebruiker bent, het zal iets als "COM1" of "COM2" ecc., als u van MAC gebruikmaakt, het zal iets als "/ dev/tty. KeySerial1 ".