John Val/ Informatica/ Physical computing/sketch 1

Een eerste sketch en een bijbehorend elektronisch circuit

Eerste sketch Waarschuwing Eerste circuit Serieel versus Parallel Uitdagingen
Je eerste sketch

De eerste sketch die je gaat maken is de standaard "Blink" ofwel knipper sketch. In deze sketch wordt de led (light emitting diode) op het Arduino bord die is gekoppeld aan digital pin 13 gebruikt. In onderstaande video wordt uitgelegd wat je moet doen. Extra in de video is dat er ook nog een extra led direct op de Arduino wordt geplaatst. Dit is mogelijk omdat pin 13 en alleen pin 13 een interne weerstand heeft. Plaatsing op deze wijze op een andere pin is af te raden.
De officiële site van Arduino heeft nog meer informatie over deze sketch en de gebruikte functies. Een Nederlandse beschrijving van de functies kun je vinden in Arduino programmeer manual 1_0 NL.pdf.

Je kunt je sketch ook online ontwerpen en testen voor je het werkelijk bouwt op de tinkercad site.

/*
  Voorbeeld Blink (knipper)
  Schakel een LED een seconde lang aan daarna een seconde lang uit
  en herhaal dat "voor altijd" 

  This example code is in the public domain.
*/
 
// Pin 13 heeft een LED gekoppeld op de meeste Arduino borden.
// geef pin 13 een naam
#define LED 13     
int wachttijd=1000; // maak een geheel getal genaamd wachttijd en geef deze de waarde 1000 
// alternatief: int LED=13;

/* De setup routine wordt een maal uitgevoerd na reset 
   of bij het opladen van de sketch op de Arduino
*/
void setup()
{                
  // Initialiseer de digitale pin als uitvoer.
  pinMode(LED, OUTPUT);     
}

/* De loop routine wordt iedere keer weer opnieuw uitgevoerd
   nadat deze is afgelopen. Wordt voor het eerts uitgevoerd 
   nadat de setup routine is afgelopen.
*/
void loop() 
{
  digitalWrite(LED, HIGH);   // schakel de LED aan (HIGH is the voltage level)
  delay(wachttijd);          // wacht 1000 miliseconden
  digitalWrite(LED, LOW);    // schakel de LED uit door het voltage LOW te maken
  delay(wachttijd);          // wait for a second
}
Opdracht
  1. Pas de code aan zodat de LED twee seconden aan is en één seconde uit.
  2. Wat betekent int in "int wachttijd=1000". Weet je dit niet gebruik dan deze bron.
  3. Pas de code aan zodat de LED eerst één seconde aan is en één seconde uit. Vervolgens verdubbelt de tijd dat de LED aan is iedere keer tot 8 seconden aan is bereikt. Daarna halveert de tijd weer tot één seconde is bereikt enzovoorts.
Waarschuwing

Waarschuwing

We zijn nu aangekomen op het punt dat we een elektronische circuit gaan maken. Voordat we beginnen moet je de volgende boodschap goed tot je door laten dringen!

Maak geen kortsluiting

Kortsluiting ontstaat als je een spanningsbron direct of met een te lage weerstand op aarde aansluit, waardoor er een te grote stroom gaat lopen of er vonken ontstaan. De Arduino kan dan beschadigd raken.
Voor jezelf is kortsluiting via de Arduino niet gevaarlijk. Daarvoor is de spanning en de maximale stroom te klein. Thuis bij 220V en de daar aanwezige maximale stroom wordt het al een stuk minder prettig. Zorg je voor contact tussen een hoogspanningskabel en de grond waar jij onderdeel van bent dan is het waarschijnlijk dat je dat niet gaat overleven.
Wees dus zuinig op jezelf en op de spullen onder jouw beheer.

Eerste circuit

Eerste circuit

V aarde geschakelde pins

In je pakket vind je naast je Arduino ook een zogenaamd breadboard zoals in de figuur hiernaast is afgebeeld. Dit is een miniversie van de schakelborden die je bij natuurkunde hebt gebruikt. De Arduino is mini dus je schakelbord moet dat ook maar zijn ☺.

Het breadboard is nagenoeg symmetrisch. Alle pins direct rechts van de rode lijn in de verticale balk onder V zijn aan elkaar gekoppeld. Om verwarring (en waarschijnlijk kortsluiting) te voorkomen sluit je daar altijd de spanning op aan.
Evenzo zijn de pins direct links van de blauwe lijn in de verticale balk boven aarde aan elkaar gekoppeld. Om verwarring te voorkomen sluit je daar altijd de aarde op aan.
Ieder horizontaal rijtje van 5 pins is ook met elkaar verbonden.
De zijde links van het midden is niet gekoppeld aan de zijde rechts van het midden.

Nogmaals sluit niet direct de + en de - op elkaar aan, niet direct en ook niet indirect zonder dat er voldoende weerstand tussen beide polen is..

In het schema hieronder is een led met weerstand van 330Ω op de digitale output pin 13 aangesloten die bij value "High" een spanning van 5V zal leveren. Haal de USB connector uit de Arduino. Pas als je overtuigd bent van de juiste verbindingen stop je de USB connector er weer in. De sketch die je hierboven hebt geladen is dan nog steeds in de ATmega aanwezig en zal gelijk worden uitgevoerd.

circuit 1
Arduino schema uit SFE-SIK-RedBoard-Guide-Version3.0-Online.pdf
Opdracht
  1. Haal de USB connector uit de Arduino en zorg dat je sketch nu op digitale pin 12 wordt uitgevoerd
  2. Op de website http://www.linetec.nl/electronics/leds/led_1.html#wat (Alles over leds) staat informatie over het waarom van de aanwezigheid van de weerstand in het circuit. Lees deze door en bepaal met hulp van de datasheets over de verschillende leds te vinden op Starter kit specificaties en Iprototype led specificaties de stroom die over het circuit loopt voor de verschillende leds. Probeer deze stroom eens te meten met een multimeter.
Serieel versus parallel

Serieel versus parallel

Serieel circuit Parallel circuit
In de schema's hiernaast zijn twee schakelaars (drukknoppen) aangebracht in het blink circuit hierboven. Ook is de blink er uitgehaald en is alles direct op 5V aangesloten. Als je op de schema's klikt krijg je het bijbehorende aansluitschema voor de Arduino te zien.
  1. Maak deze circuits en zie dat je bij de seriële versie beide knopjes moet indrukken om het licht te laten branden. De stroomketen is een geheel. Bij de parellelle versie kun je linksom en hoeft er dus maar één knop te worden ingedrukt.
Uitdaging

Uitdaging

Je hebt nu geleerd om led's aan en uit te kunnen zetten met behulp van je Arduino. Hieronder staan twee uitdagende programmeeropdrachten die alleen gaan over lichten aan en uit zetten.

  1. Uitdaging Morse code: Maak en sketch waarin een willekeurige boodschap (b.v. "ik stuur dit bericht") in morse wordt geknipperd. Hieronder staat de morse tabel. Laat een "dot" 100 milliseconden duren, een dash 500 milliseconden. Pauzes in een letter duren ook 100 milliseconden en pauzes tussen letters duren 200 milliseconden. Een spatie duurt 400 miliseconden. Het einde van een regel wordt afgesloten door een pauze van 800 miliseconden.
    A • − B − • • • C − • − • D − • • E •   F • • − •
    G − − • H • • • • I • • J • − − − K − • − L • − • •
    M − − N − • O − − − P • − − • Q − − • − R • − •
    S • • • T U • • − V • • • − W • − − X − • • −
    Y − • − − Z − − • •
    Een uitgewerkt voorbeeld is gevonden op https://nanobaz.blogspot.nl/. Niet te vroeg spieken hoor!. Zonder commentaar in de code hoef je de sketch sowieso niet in te leveren.
  2. Uitdaging Verkeerslicht: Maak een schakeling voor twee sets verkeerslichten op een kruising van een hoofdweg en een zijweg. De hoofdweg heeft vier keer zoveel verkeer als de zijweg. Verkeer op de zijweg mag niet langer dan één minuut en 30 seconden wachten.