ArduinoBuzzer

En eindelijk gaan we geluid maken. Hiervoor gebruiken we een buzzer. Er zijn actieve en passieve buzzers. En het handige (NOT!) is dat die er bijna hetzelfde uitzien.

Onderstaande sketch zal een geluid voortbrengen dat langzaam omhoog gaat en dan weer terug. Hoogst vervelend voor anderen in de kamer, dus missie geslaagd!



ArduinoBreadboard



ArduinoSketch
/*
  Op en neer gaande toon

  www.punthooft.nl
*/

// Constants
const int buzzer = 2;

void setup() {

  pinMode(buzzer,OUTPUT);
}

  
// The loop function runs over and over again forever
void loop() {

  for (int i=100 ; i <= 1000 ; i++) {
 
    tone(buzzer,i); //output frequency at port 4, i.e., generate a sound
    delay(5);       //generate a sound for 5ms 
  }

  delay(100);           //the highest frequency lasts for 4ms

  for (int i = 1000; i >= 100 ; i--) {
    
    tone(buzzer,i);
    delay(5);
  }

  delay(100);           //the highest frequency lasts for 4ms

}


ArduinoOpmerkingen

De gebruikte weerstand is van 220 Ohm.

Een vreemde eend in de bijt is de refreshDisplay() onderin de code. Met dit commando geven we de library opdracht om de display te tekenen. Dit moet continue gebeuren. Als we op de regel erna een delay(100) inbouwen dan zien we hoe het opbouwen van de display gebeurd. Iedere led van de cijfers zal los worden getekend.



ArduinoLibrary

Voor de aansturing van het display gebruiken we de SevSeg library. Na het include commando maken we een object aan:

SevSeg sevseg;

In de library staat een class beschreven van het type SevSeg (let op de hoofdletters!). In onze code maken we een object (variable) aan sevseg (kleine letters) van het type SevSeg (let op de hoofdletters!). Dit is niet heel veel anders als het commando op de lijn eronder

int counter = 0;

Hier maken we een variable aan met de naam counter (vergelijk sevseg) en van het type int (integer) een getal, en wij gebruiken een class SevSeg. Het verschil is echter dat we de waarde counter meteen op 0 zetten. Ons object sevseg geven we in de setup waarden mee:

sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins);

En daar zetten we ook de helderheid van het scherm.




Lees Verder in deze categorie

Copyright 2018 www.punthooft.nl

We do not collect cookies for advertisement. Your data is never send to third parties.