Inhoudsopgave:

Arduino Seriële Monitor in Tinkercad - Ajarnpa
Arduino Seriële Monitor in Tinkercad - Ajarnpa

Video: Arduino Seriële Monitor in Tinkercad - Ajarnpa

Video: Arduino Seriële Monitor in Tinkercad - Ajarnpa
Video: {916} i2c LCD configuration with Arduino UNO in Tinkercad 2024, Juli-
Anonim
Arduino Seriële Monitor in Tinkercad
Arduino Seriële Monitor in Tinkercad

Tinkercad-projecten »

Het bijhouden van alles wat er in uw programma gebeurt, kan een zware strijd zijn. De seriële monitor is een manier om te luisteren naar wat er in uw code gebeurt door via de USB-kabel terug te rapporteren naar de computer. In de Tinkercad Circuits-simulator bevindt de seriële monitor zich onderaan het codepaneel en kan deze ook worden gebruikt om variabelen in een grafiek weer te geven als ze veranderen. Gebruik de seriële monitor om met de computer te "praten" om te controleren of de Arduino-code doet wat u van plan was. Dit kan erg handig zijn om problemen met je code op te lossen ('serial debugging' genoemd).

De twee circuits in deze les gebruiken dezelfde configuraties als de vorige twee lessen over digitale ingang met een drukknop en analoge ingang met een potentiometer. De enige verschillen zijn dat deze circuits vrij bedraad zijn (geen breadboard) en geen externe LED hebben. Oh, en ze gebruiken code om seriële berichten te genereren, waarover we in deze les zullen leren.

Met Tinkercad Circuits kun je virtueel volgen. Je kunt deze les zelfs vanuit Tinkercad bekijken (gratis inloggen vereist)! Verken het voorbeeldcircuit en bouw je eigen circuit ernaast. Tinkercad Circuits is een gratis browsergebaseerd programma waarmee je circuits kunt bouwen en simuleren. Het is perfect voor leren, onderwijzen en prototypen.

Stap 1: Afdrukken naar de seriële monitor met blokken

Afbeelding
Afbeelding

Laten we de codeblokkeneditor gebruiken om naar een Arduino-invoerpin te luisteren en vervolgens de waarde (analoog) of status (digitaal) van de invoer in het Serial Monitor-venster afdrukken. Klik op de knop "Code" om het codepaneel te openen.

Klik op de seriële monitor onderaan het codepaneel.

Klik op "Start Simulation" om de Arduino-voorbeeldcode uit te voeren en observeer de cijfers in de seriële monitor terwijl u met de potentiometer communiceert. Je kunt heen en weer klikken tussen de twee Arduino's terwijl de simulatie draait in Tinkercad Circuits, maar alleen het analoge circuit wordt weergegeven in de ingebouwde module hierboven.

Na het dupliceren van het voorbeeldcircuit in uw Tinkercad-account, kunt u de code wijzigen. Navigeer naar de categorie Uitvoercode, sleep een blok "afdrukken naar seriële monitor" naar buiten en plaats het net voor het seriële blok dat al in het programma zit.

Wijzig de standaardtekst om uw seriële gegevens te labelen, zoals "sensor: " (vergeet de spatie na de dubbele punt niet), en pas het vervolgkeuzemenu aan om af te drukken zonder een nieuwe regel.

Start de simulatie en observeer de verandering in de seriële monitor. U kunt seriële blokken op deze manier stapelen om nuttige feedbackberichten te creëren tijdens het ontwikkelen van een projectcode.

Stap 2: Arduino-code voor seriële monitor uitgelegd

Afbeelding
Afbeelding

Wanneer de code-editor is geopend in Tinkercad Circuits, kunt u op het vervolgkeuzemenu aan de linkerkant klikken en "Blocks + Text" selecteren om de Arduino-code weer te geven die door de codeblokken wordt gegenereerd (niet beschikbaar in de ingebouwde module in de eerste stap). Deze code stuurt gegevens van de Arduino naar de seriële monitor, maar in een latere les kunt u ook leren hoe u gegevens van de seriële monitor en tweeweg seriële communicatie kunt ontvangen.

/*

DigitalReadSerial Leest een digitale ingang op pin 2, print het resultaat naar de seriële monitor. Deze voorbeeldcode is in het publieke domein. */

voor de

opstelling()

kunnen we een opmerking met meerdere regels zien die begint met

/*

en eindigt met

*/

int knopState = 0;

Helemaal aan het begin van ons programma maken we een variabele om de status van de invoer vast te houden.

ongeldige setup()

{ pinMode (2, INPUT); Serieel.begin(9600); }

Binnen de opstelling is, net als bij de analoge en digitale ingangslessen, de pin die op de schakelaar of sensor is aangesloten, geconfigureerd als een ingang met behulp van de

pinMode()

functie. Om berichten te kunnen versturen, moet de Arduino een nieuw communicatiekanaal openen met

Serieel.begin()

. Het is alsof u op de belknop van een telefoon drukt - vanaf dat moment opent u een communicatielijn voor de oproep. Het argument vertelt de Arduino hoe snel hij moet communiceren, bijvoorbeeld 9600 bits per seconde (ook wel baud genoemd).

lege lus()

{// lees de invoerpin buttonState = digitalRead (2); // print de status van de knop Serial.print ("sensor: "); Serial.println(buttonState); vertraging(10); // Stel een beetje uit om de simulatieprestaties te verbeteren}

De code in de lus leest de status van de invoer met digitalRead() en slaat deze op in de variabele buttonState. Dan een functie genaamd

Serieel.println()

stuurt de gegevens naar de monitor (via de USB-kabel in het geval van een fysiek Arduino-bord). Als u de blokkenwijzigingen in het programma in de vorige stap hebt aangebracht, heeft u ook een

Seriële.print()

regel code.

println

stuurt een nieuwe regel na het bericht, en

afdrukken

doet niet. Gebruik bijvoorbeeld aanhalingstekens rond tekstlabels

Serial.print("sensor: ");

. Als u een enkele regel seriële foutopsporingsuitvoer wilt maken, kunt u meerdere

Seriële.print()

commando's gevolgd door een enkele

Serieel.println()

Stap 3: De Code Debugger

Afbeelding
Afbeelding

Er is een speciale functie in Tinkercad Circuits, de Debugger. Het stapt door uw code en stelt u in staat om naar uw variabelen en meer te kijken.

Open de code-editor en zoek de Debugger door op de knop met het bugpictogram te klikken.

Klik in de modus Blokken + tekst (of alleen tekst, als je dat liever hebt) op een regelnummer om een onderbrekingspunt toe te voegen, waar de debugger elke keer door de lus stopt.

Start de simulatie.

Beweeg de muisaanwijzer over variabelen terwijl u gepauzeerd bent om hun waarden te zien.

Stap 4: Basic Serial Circuit Starters

Basis serieschakeling starters
Basis serieschakeling starters

Deze circuits zijn verkrijgbaar als circuitstarters. U kunt deze circuitstarters altijd gebruiken als u een digitale of analoge ingang wilt lezen en de status ervan naar de seriële monitor wilt afdrukken.

Pak Arduino-circuitstarters uit het componentenpaneel (vervolgkeuzemenu -> Starters -> Arduino).

Stap 5: Seriële gegevens in een grafiek zetten

Grafiek seriële gegevens
Grafiek seriële gegevens

Tinkercad Circuits heeft ook ingebouwde grafieken van uw seriële gegevens, op voorwaarde dat de stream geen tekst bevat. Dit is handig voor het visualiseren van veranderingen in sensormetingen en andere invoer, maar ook voor het volgen van variabelen in uw programma.

Klik terwijl de seriële monitor is geopend op de grafiekknop om het grafiekpaneel te openen. Verwijder het sensorlabelblok dat u eerder hebt toegevoegd, of gebruik een nieuwe Arduino seriële starter om een seriële gegevensstroom zonder tekst te maken.

Start de simulatie en communiceer met de invoer om de grafiekwaarden te zien veranderen.

Stap 6: Probeer het met een fysiek Arduino-circuit (optioneel)

Afbeelding
Afbeelding

Je hebt de mogelijkheid om een fysiek circuit te bouwen dat hierbij past, of de lessen over digitale invoer of analoge invoer, en gebruik vervolgens de Arduino-software van je computer om de seriële gegevens te bekijken die via de USB-kabel binnenkomen. Om je fysieke Arduino Uno te programmeren, moet je de gratis software (of plug-in voor de webeditor) installeren en vervolgens openen.

Sluit het Arduino Uno-circuit aan door componenten en draden aan te sluiten op de verbindingen die hier in Tinkercad Circuits worden getoond. Voor een meer diepgaande uitleg over het werken met je fysieke Arduino Uno-bord, bekijk de gratis Instructables Arduino-klasse (een soortgelijk circuit wordt beschreven in de derde les).

Kopieer de code uit het Tinkercad Circuits-codevenster en plak deze in een lege schets in uw Arduino-software, of klik op de downloadknop (pijl naar beneden) en open

het resulterende bestand met behulp van Arduino. Je kunt deze voorbeelden ook vinden in de Arduino-software door te navigeren naar Bestand -> Voorbeelden -> 03. Analog -> AnalogInOutSerial of Bestand -> Voorbeelden -> 02. Digital -> DigitalInputPullup.

Sluit uw USB-kabel aan en selecteer uw bord en poort in het menu Tools van de software.

Upload de code naar uw bord en klik vervolgens op het vergrootglaspictogram in de rechterbovenhoek om de seriële monitor te openen. Controleer nogmaals of de baudrate overeenkomt met die in uw setup

Serieel.begin(9600)

Druk op de drukknop of draai aan de knop en kijk hoe de cijfers veranderen in uw Serial Monitor-venster.

Stap 7: Probeer vervolgens …

Probeer vervolgens…
Probeer vervolgens…

Nu je hebt geleerd om naar de seriële monitor af te drukken, ben je klaar om nieuwe soorten digitale en analoge sensoren uit te testen en ook om inkomende seriële gegevens te leren lezen (invoer via toetsenbord van de gebruiker).

Kun je een enkel circuit en programma samenstellen dat zowel de analoge als de digitale ingangen afdrukt die in deze les worden getoond?

Hier is een link naar het afgebeelde circuit en de Arduino-code:

int int knopState = 0;

int sensorWaarde = 0; void setup() { pinMode(2, INPUT); pinMode (A0, INGANG); Serieel.begin(9600); } void loop () {// lees de invoerpin buttonState = digitalRead (2); // lees de invoer op analoge pin 0: sensorValue = analogRead (A0); // print waarden naar de seriële monitor Serial.print(buttonState); Serieel.print(", "); Serial.println(sensorValue); vertraging(10); // Stel een beetje uit om de simulatieprestaties te verbeteren}

Ga door met het uitproberen van een nieuwe sensor en combineer in- en uitgangen, bijvoorbeeld in de les in de temperatuursensor LED-balkgrafiek, PIR-bewegingssensorles of fotoweerstandsles. (binnenkort beschikbaar). Gebruik het toetsenbord van uw computer om seriële gegevens naar uw Arduino te sturen en deze te interpreteren met

Serieel.lezen()

(les komt eraan).

Je kunt ook meer elektronicavaardigheden leren met de gratis Instructables-lessen over Arduino, basiselektronica, LED's en verlichting, 3D-printen en meer.

Aanbevolen: