Geluid-sensor (zowel Aan/uit als Analoog)

Onderstaande sensor kan zowel als Aan/Uit als als Analoge sensor gebruikt worden:

Aan/uit: Met de potentiometer wordt het schakelniveau afgesteld. Is de gemeten grootheid hoger dan dit niveau dan schakelt de digitale uitgangspin van deze sensor.

Analoog: De gemeten spanning op de analoge pin van deze sensor is evenredig met de gemeten grootheid. 

Aan/uit sensoren

Aan/uit sensoren zijn sensoren die enkel TRUE of FALSE weergeven – 1 of 0. Afhankelijk van het type sensor wordt er een andere situatie ‘gemeten’ – schakelaar wel of niet ingedrukt, wel of geen magneet in de buurt, wel of geen geluid gemeten, ….

Hieronder ziet u per Aan/uit sensor een beschrijving van de aansluiting en werking. 

Het testprogramma onderaan deze pagina is identiek voor al deze Aan/uit sensoren. 

Geluid-schakelaar

In deze situatie gebruiken we dit bordje als Aan/uit sensor. (Dit bordje kan ook gebruikt worden als een lineaire meting die aangeeft hoeveel geluid er gemeten wordt.) Deze sensor geeft een “1” of “0” als er wel of geen geluid in de buurt is. De gevoeligheid kan worden afgesteld door aan de potmeter te draaien.

Experimenteer hier even mee in welke stand deze een “1” of een “0” geeft. De blauwe pin mag aan eender welke IO pin van de controller verbonden worden.

Demo-programma voor alle Aan/Uit sensoren

Onderstaand demo programma is ideaal om de werking van uw Aan/uit sensor te testen. Open zeker ook de Seriële Plotter via >> Hulpmiddelen >> Seriële plotter. Die geeft mooi grafisch weer welke meetwaarde de sensor weergeeft.

/*E2CRE8 - Dec2021 - Demoprogramma Digitale (ON/OFF) Sensors
 * Als de input een hoog signaal geeft, zal de led op het processorbordje branden.
 * Zet zeker ook de Seriele plotter open - deze geeft mooi grafisch weer hoe de input reageert. 
 */

#define Led LED_BUILTIN      //define LED pin
#define Din 21              //define digital input pîn

int val;      //define digital variable val

void  setup()
{
  pinMode(Led, OUTPUT);     //define LED as a output port
  pinMode(Din, INPUT);    //define shock sensor as a output port
  Serial.begin(9600);
}
void  loop()
{ 
  val = digitalRead(Din);   //read the value of the digital interface to val
  if (val == HIGH)          //Wanneer de input hoog is
   { 
    digitalWrite(Led, HIGH);            // LED AAN
    Serial.print("ON/OFF VALUE IS:" );   // print text (enkel seriele monitor)
    Serial.println(1);                  // print waarde - ook seriele plotter
  }
  else
  {
    digitalWrite(Led, LOW);               // LED UIT
    Serial.print("ON/OFF VALUE IS:" );   // print text (enkel seriele monitor)
    Serial.println(0);   // print waarde
  }

  delay(10);   // deze delay staat hier enkel om de seriele plotter te vertragen - mag weggehaald worden
}

Audio/ Geluid Sensor

De waarde die deze geluidsensor uitgeeft verandert als er meer of minder geluid ‘gehoord’ wordt. Het geeft een mooie indicatie, verwacht hier echter geen decibel-meting. 

Programmatie Analoge sensoren

Analoge sensoren kunnen allemaal met hetzelfde basisprogramma worden ingelezen.

 

 

Basisprogramma Analoge sensoren

 

// Brainbox iot - e2cre8.be - Jan 2021
// Demoprogramma inlezen analoge sensoren

#define sensorPin A0  // bepaal op welke ANaloge pin het signaal wordt ingelezen
int sensorValue = 0;  // Declareer variabele

void setup() 
  {
   Serial.begin(9600);  // init seriele monitor
  }

void loop() 
  {
    sensorValue = analogRead(sensorPin); // lees analoge waarde in variabele
    Serial.print("Analog Value : ");      // print tekst op seriele monitor
    Serial.println(sensorValue);          // print waarde op seriele monitor
    delay(1000);                          // Wacht 1 sec
  }