Inhoudsopgave:
- Stap 1: Afdrukken naar de seriële monitor met blokken
- Stap 2: Arduino-code voor seriële monitor uitgelegd
- Stap 3: De Code Debugger
- Stap 4: Basic Serial Circuit Starters
- Stap 5: Seriële gegevens in een grafiek zetten
- Stap 6: Probeer het met een fysiek Arduino-circuit (optioneel)
- Stap 7: Probeer vervolgens …
Video: Arduino Seriële Monitor in Tinkercad - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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
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
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
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
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
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)
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 …
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:
Het probleem met de Mac Lilypad USB-seriële poort/stuurprogramma oplossen: 10 stappen (met afbeeldingen)
De Mac Lilypad USB seriële poort/stuurprogramma oplossen Probleem: is uw Mac vanaf 2016 minder dan 2 jaar oud? Hebt u onlangs een upgrade uitgevoerd naar het nieuwste besturingssysteem (Yosemite of iets nieuwer)? Werken uw Lilypad USB's/MP3's niet meer? Mijn tutorial zal je laten zien hoe ik mijn Lilypad USB's heb gerepareerd. De fout die ik tegenkwam was gerelateerd
Arduino seriële communicatie: 5 stappen
Arduino seriële communicatie: veel Arduino-projecten zijn afhankelijk van het verzenden van gegevens tussen verschillende Arduino's. Of u nu een hobbyist bent die een RC-auto, een RC-vliegtuig bouwt of een weerstation met een extern display ontwerpt, u moet weten hoe u op betrouwbare wijze overdracht serie
Standalone Arduino 3.3V W / externe 8 MHz klok wordt geprogrammeerd vanaf Arduino Uno via ICSP / ISP (met seriële bewaking!): 4 stappen
Standalone Arduino 3,3 V met externe 8 MHz-klok die wordt geprogrammeerd vanaf Arduino Uno via ICSP / ISP (met seriële bewaking!): Doelstellingen: een stand-alone Arduino bouwen die op 3,3 V van een externe klok van 8 MHz draait. Om het te programmeren via ISP (ook bekend als ICSP, in-circuit serieel programmeren) vanaf een Arduino Uno (draaiend op 5V) Om het bootloader-bestand te bewerken en de
Seriële monitor bekijken via Bluetooth: 4 stappen
Bekijk seriële monitor via Bluetooth: dit project gebruikt een HC-05 Bluetooth-module om een traditionele bedrade verbinding te vervangen die wordt gebruikt voor het bekijken van de seriële monitor. Materialen: Arduino - https://amzn.to/2DLjxR2 Breadboard - https://amzn.to /2RYqiSK Doorverbindingsdraden - https://amzn.to/2RYqiSK H
PC RAM-gebruik naar Arduino via seriële poort: 7 stappen
PC RAM-gebruik naar Arduino Via seriële poort: Een vriend van mij heeft me geïnspireerd met zijn kleine Arduino-project. Dit kleine project omvat de Arduino UNO R3, die gegevens leest door een programma gemaakt in Arduino IDE, verzonden naar een seriële poort (USB-poort) door een C#-programma gemaakt in Visual Studio. Zoals dit