De seriële monitor is een handig hulpmiddel in de Arduino-omgeving waarmee je data tussen je microcontroller (zoals een Arduino) en je computer kunt uitwisselen. Je kunt de monitor gebruiken om meetwaarden, tekst of andere informatie naar je computer te sturen, bijvoorbeeld om sensordata te loggen of berichten weer te geven.
Daarnaast is de seriële monitor een krachtig debuginstrument. Door variabelen, berekeningen of de status van digitale en analoge pinnen naar de monitor te sturen, kun je controleren of je programma correct werkt. Dit maakt het makkelijker om problemen op te sporen en de werking van je schakeling te analyseren.
Om de seriële monitor te openen, klik je in de Arduino IDE op "Extra" > "Seriële monitor" of gebruik je de sneltoets Ctrl+Shift+M.
De commuicatie tussen de Arduino en de computer gebeurt via de USB-poort. Digitale pin 0 en 1 zijn ook verbonden met de USB, pin 0 voor het lezen van data van de computer, pin 1 om data naar de computer te sturen. Om die reden gaan we proberen om pin 0 en 1 niet te gebruiken om sensoren of actuatoren aan te sluiten.
Om te communiceren met de computer gaan we eerst de verbinding moeten openen. Dit gebeurt in de setup()-functie.De commmuncatie met de computer starten met een snelheid van 9600 bits per seconde gebeurt met onderstaande code:
Serial.begin(9600);
Syntax:
Serial.begin(<waarde>)
Parameters
Bron :
https://docs.arduino.cc/language-reference/en/functions/digital-io/pinMode/
Belangrijk: Zorg dat de snelheid in de code en de seriële monitor hetzelfde is!
Wanneer je met een Arduino werkt, is het belangrijk dat de snelheid van de data-overdracht (ook wel baudrate genoemd) in je code exact overeenkomt met de snelheid die je in de seriële monitor instelt.
Controleer daarom altijd of beide snelheden hetzelfde zijn, zodat je de juiste informatie kunt zien!
Opmerking: In de simulatieomgeving moet je dit niet doen.
Om data als tekst van de Arduino naar de computer te versturen ga je deze "printen" via de seriële verbinding. Dit kan met 2 verschillende commando's:
Voorbeeld:
Serial.print("Hallo");
Serial.print(" ");
Serial.print("Arduino!");
Resultaat:`Hallo Arduino!` (Alles op één regel)
Voorbeeld:
Serial.println("Hallo");
Serial.println("Arduino!");
Resultaat:
Hallo
Arduino!
(Met een enter na elke regel)
Syntax:
Serial.begin(<waarde>)
Parameters
Bron :
https://docs.arduino.cc/language-reference/en/functions/digital-io/pinMode/
Met de Arduino kun je meetgegevens (zoals sensordata) naar je computer sturen. Deze data kun je op verschillende manieren verwerken:
Belangrijke regel: Data kan maar op één plek tegelijk gebruikt worden!
Zorg dus dat je maar één applicatie tegelijk gebruikt om de Arduino-data te ontvangen. Zo voorkom je problemen!
In de simulatieomgeving kan je de seriële monitor openen door het codevenster te openen. Onderaan het codevenster kan je dan de seriële monitor openen. In de simulatieomgeving moet je niet de baudrate ingeven.
Simulatie opdracht 1: |
|
|---|---|
|
Classes => Maze Runner Online => Op weg naar de start! => bodemvochtigheid In deze oefening is de bodemvochtigheidssensor aangesloten op analoge ingang A0. We gaan gewoon de status van deze ingang lezen en we laten de status van deze ingang zien in de seriële monitor. Tussen 2 waardes zit een pauze van een halve seconde.
|
Simulatie opdracht 1 - uitbreiding: |
|
|---|---|
|
Classes => Maze Runner Online => Op weg naar de start! => vochtigheidsmeter indicator Sluit op je schakening van opdracht 1 ook het verkeerslicht aan. Het verkeerlicht moet aangeven of de grond vochtig genoeg (groen), droog (geel) of zeer droog (rood) is. Verdeel het gebied van de bodemvochtheidssensor in 3 gelijke delen, elk deel voor één kleur. Om deze gebieden te kunnen indelen moet je eerst de maximale waarde kennen dat de sensor doorgeeft. |
De weerstand van een LDR (light depending resistor) is afhankelijk van de lichtsterkte die erop valt. Bij veel licht is de weerstand laag, bij weinig licht is de weerstand hoog.
Je kan met een LDR de hoeveelheid licht controleren. Je kan dat door de LDR in een circuit op te nemen of door een LDR-module te gebruiken.
Je hebt LDR-modules met 3 en met 4 aansluitingen. In beide gevallen worden 2 aansluitingen gebruikt voor de voeding. De 5 V van de Arduino wordt aangesloten op de VCC-pin, en de GND van de Arduino op de GND-pin van de module.
Een derde aansluiting, aangeduidt met SIG of met A0, geeft een analoog signaal. Je sluit deze aansluiting aan op één van anologe ingangen van de Arduino.
Heb je een vierde aansluiting, dan is dit een digitale uitgang. Deze zal 0 of 1 zijn afhankelijk van de hoeveelheid licht die invalt op de LDR. Dit kan ingesteld worden met een potentiometer.
Heb je een module met 4 aanslutingen, maar je hebt de analoge of digitale uitgang niet nodig, dan moet je deze niet aansluiten.
Ook hier hebben we weer deze module voor je opgebouwd op een breadboard. Er zijn 4 aansluitingen voorzien:
|
|
AlternatiefHet circuit dat op het breadboard in de simulatie gemaakt is, is reeds een uitgebreid circuit. Ben je niet in het bezit van zo een module, dan kan je met een serieschakeling van een simpele LDR en met een weerstand zelf een lichtsensor maken. Voor meer informatie klik je op het logo (hoofd met brein) |
|---|
Simulatie opdracht 2: |
|
|---|---|
|
Classes => Maze Runner Online => Op weg naar de start! => lichtsensor
|
Sensoren gaan een fysische grootheid zoals lichtsterkte, temperatuur, druk,... omzetten naar een elektrische grootheid. Bij een aantal sensoren zal de weerstand van de sensor wijzigen. Een Arduino kan niet rechtstreeks weerstand of stroom meten, maar enkel de potentiaal of spanning tussen dat punt en de ground (GND).
Via een omweg kunnen wij dit wel detecteren. Wanneer de weerstand van een component, opgenomen in een circuit, wijzigt, dan zal de stroom door deze kring gaan veranderen. Dit helpt on op het eerste gezicht niet verder omdat ook deze stroom niet kan gemeten worden door de Arduino.
Plaatsen we echter een weerstand in serie met het component, dan zal bij verandering van de weerstand van het component, de stroom wijzigingen, maar niet enkel door het component, maar ook door de weerstand in serie. In een serieschakeling is de stroom immers overal gelijk.
Als de stroom door deze weerstand verandert, dan zal de spanning over deze weerstand veranderen... en dat kunnen we wel gaan meten.
Serieschakeling LDR: |
|
|---|---|
|
Classes => Maze Runner Online => Op weg naar de start! => LDR serie Maak op het breadboardje een serieschakeling van de LDR en de weerstand.
Zorg dat je via een analoge ingang de verandering van de "spanning" kan detecteren. Geef de status van de analoge ingang weer in de seriële monitor. |
Krachtsensor: |
|
|---|---|
|
Classes => Maze Runner Online => Op weg naar de start! => kracht Maak op het breadboardje een serieschakeling van de kracht en de weerstand.
Zorg dat je via een analoge ingang de verandering van de "spanning" kan detecteren. Geef de status van de analoge ingang weer in de seriële monitor. Opmerking: |