Free Joomla Templates by FatCow Coupon

Arduino Project 11: "Crystal Ball"

Hoofdcategorie: ROOT Categorie: Robotica Gepubliceerd: vrijdag 27 september 2019

Gebruikerswaardering: 5 / 5

Ster actiefSter actiefSter actiefSter actiefSter actief
 

 

Een Crystal ball is een glazen bol. De letters LCD van LCD-scherm staan voor Liquid Crystal Display. Het is de bedoeling dat Arduino je een random (willekeurig) antwoord geeft op een vraag. In de Arduino programmeer je daartoe een aantal antwoorden voor. Je stelt een vraag. Daarna bedien je een switch. En dan geeft de Arduino op een display een van de antwoorden die je vooraf zelf hebt geprogrammeerd.

Je kunt zoveel antwoorden bedenken als je maar wilt. De switch bestaat in dit project uit een zogenaamde TILT-switch. De TILT-switch is een schakelaar die schakelt zodra je hem schuin of op zijn kop houdt. Afgezien de manier van bedienen is dit een gewone aan/uit schakelaar.

 

Stap 1: neem de TILT-switch in gebruik

Je hebt al eerder in de projecten .. gebruik gemaakt van een switch. Kijk nog even na hoe dat ging, monteer de switch op je breadboard en test hem door er bijvoorbeeld het Build-in LED mee te bedienen.

 

Stap 2: LCD TC1602A-21T

Monteer de LCD op je breadboard en zoek op internet een simpel programma waarmee je een tekst als "Stel je vraag" "aan de crystal ball" verdeeld over twee regels op het scherm kunt krijgen.

vraag het aan de crystal ball L

Bestudeer de library die je in Arduino naar binnen hebt gehaald. Zo'n library bevat commando's. Bestudeer deze commando's en kijk of er iets bruibaars voor dit project bij zit.

 

Stap 3: beschrijf nauwkeurig hoe je project moet werken... ALS... DAN... TERWIJL...

  • Uitgangspositie: ALS ik niks doe, staat in het display de tekst ...
  • ALS ik de TILT-schakelaar omkeer...
  • ALS ik de TILT-schakelaar weer rechtop plaats...
  • Wanneer moet ik weer in de uitgangspositie komen?

Ikzelf maakte hiervan:

  1. Uitgangspositie: op het LCD staat de tekst "Stel mij een vraag!"
  2. ALS ik de TILT-schakelaar omkeer... wordt een random antwoord gegeven
  3. ALS ik de TILT-schakelaar weer rechtop plaats... 
    1. en daarna opnieuw omkeer..., dan ga ik terug naar stap b
    2. wacht tot er 4 seconden voorbij zijn, dan ga ik terug naar uitgangspositie: stap a

Ter info: bij b. heb ik ervoor gekozen om een antwoord te genereren op het moment dat ik de TILT-schakelaar omkeer. Ik had misschien beter het moment kunnen kiezen waarop ik de TILT-schakelaar weer rechtop zet. Want stel... ik zet de TILT-schakelaar op zijn kop. Dan staat de hele arduino waarschijnlijk op zijn kop en dan kan ik het antwoord niet lezen. Als ik vervolgens de Arduino nog 5 seconden op zijn kop houd, voor hem weer rechtop te zetten, dan staat hij alweer in uitgangspositie.

Zo zie je maar: je kunt blijven perfectioneren. Hoe meer je begrijpt van het programmeren met Arduino, hoe verder je kunt programmeren. En omdat ik nog beginner ben, eis ik nog niet de uiterste perfect van mezelf.

 

Stap 4: Verzin 8 verschillende antwoorden, bijvoorbeeld:

  1. Ja, meteen
  2. Donder op!!!
  3. Zoek dat maar lekker zelf uit!
  4. Dat moet je aan je buurman vragen
  5. NEE, NEE en nog eens NEE!
  6. Zou je je vraag willen herhalen alsjeblieft?
  7. Geen idee!
  8. Daar moet ik even over nadenken.

 

Stap 5: selecteer de juiste commando's uit "Control Structure"

Programmeer wat je bij stap 3 heb bedacht. Daartoe heb je zogenaamde Control Structure commando's nodig. De vraag voor jou is: welke controle structure commando's kun je hier het beste gebruiken en hoe pas je ze toe?

  • Zoek op internet uit welke Control Structure commando's er zoal zijn in Arduino.
  • Kijk per Control Structure commando's wat de toepassingsmogelijkheden zijn.
  • Lastig: meerdere Control Structure commando's lijken geschikt te zijn om je doel hier te bereiken. Welke moet je nu kiezen? Ik besloot om te spieken in het boek. Daar wordt gebruik gemaakt van "switch...case". Laat ik dat dan ook maar doen!

 

Heb je zelfstandig project 11 voltooid? "THUMBS UP!!! Mij lukte dat niet. Dus ik heb in het boek gespiekt. In deze fase van je leerproces is het geen schande als het je niet zelfstandig lukt om tot een oplossing te komen. Je hebt immers nog een hele leerweg te gaan. Maar door bovenstaande stappen te doorlopen, begrijp je nu warschijnlijk wel de oplossing die het boek biedt. Dat is al heel wat!

Het boek komt met:

  • int switchState = 0; (huidige stand van de schakelaar)
  • int prevSwitchState = 0; (vorige stand van de schakelaar)
  • if (switchState != prevSwitchState)
  • prevSwitchState = switchState;

Beschrijf de functie van deze switchStates.

 

 

 

 

 

 

 


Control Structure
Hits: 1022

Doel

Physicsexperiments.org wil docenten, TOA's en leerlingen natuurkunde inspireren. Physicsexperiments.org is een verzameling Natuur­kunde Experimenten. Elk experiment, simpel of gecompliceerd, verdient aandacht.

Vind je mijn initiatief positief en heb je een suggesties? Graag!!! Ik sta altijd open voor nieuwe ideeën, voor verbeteringen en aanvullingen.

Je collega-TOA Lennart

 

VERANTWOORDING/DISCLAIMER:

Het is altijd uw eigen verantwoordelijkheid om veilig te werken en om risico's in te schatten. De maker van physicsexperiments kan niet aansprakelijk worden gesteld voor fouten op de website die kunnen leiden tot ongelukken.