Brunzidor

En aquest projecte farem un programa per tal de controlar un brunzidor i un servo a la vegada a partir d'un potenciòmetre. El servo ja sabem com es controla gràcies al programa anterior. Tot i així també utilitzarem un nou actuador anomenat brunzidor. El brunzidor (o buzzer) és un actuador que produeix sons a partir de vibracions. Per tant com més voltatge rep, més vibra i per tant més agut el so que produeixi és. Tots els brunzidors utilitzen dos pins per tal de funcionar: un per donar-li voltatge i l'altre que és el de massa. Els brunzidors en forma de mòduls en tenen tres, dos per alimentar-lo i un per anar-li donant el diferent voltatge. Depenent del brunzidor, no tots produexen el mateix so quan s'utilitza un mateix voltatge. Tot i així, sempre es pot configurar. Al igual que molts actuador, el bronzidor es pot trobar individualment, o en forma de mòdul. O sigui, en aquest projecte, a partir d'un potenciòmetre variarem el so que produeix el bronzidor i igual que el projecte anterior també controlarem la posició del servo a partir del potenciòmetre.


Una vegada feta l'explicació del projecte, primer de tot podem realitzar l'esquema elèctric. Per aquest esquema necessitem:

  • 1xArduino UNO
  • 1xProtoboard
  • 1xBuzzer
  • 1xServomotor com el del projecte anterior
  • 1xPotenciòmetre
  • 1xcondensador de 100uF
  • Cables



Una vegada ja hem realitzat l'esquema elèctric és hora de programar la placa Arduino. El programa que utilitzarem és el següent.

#include <Servo.h>          //Incloïm la llibreria del Servo per tal d'utilitzar-lo
Servo MiServo;              //Anomenem el nostre servo
int ValordelSensor;       //Creem una variable per a guardar el valor màxim del potenciòmetre

     
const int PinPot=A0;        //Creem una constant per dir a on va connectat el potenciòmetre
int Angulo;                 //Creem una variable que serà l'angle que farà el servo

void setup() {
   MiServo.attach(9);       //Li diem que el servo va connectat al pin 9
   pinMode(9,OUTPUT);       //Li diem que el pin 9 és de sortida
   pinMode(8,OUTPUT);       //Li diem que el pin 8 és de sortida

    
  }



void loop() {

//Fem que el valor de la variable ValordelSensor sigui el llegit per el pin A0,
//que és el que dona el potenciòmetre
ValordelSensor=analogRead(PinPot);

//Creem una variable que es digui tono i que tindrà el mateix valor que la variable
//ValordelSensor
int tono=ValordelSensor;

//La variable creada anteriorment servirà per a utilitzar la funció tone. Aquesta
//variable en aquesta funció servirà per a dir quina potència s'ha de treure
tone(8,tono,20);

//Per tal de calcular el angle que s'ha de fer amb el servo, s'ha de fer un map entre
//els valors que pot donar el potenciòmetre (0 i 1023) i l'angle que pot fer el servo (0 i 180).
Angulo=map(ValordelSensor,0,1023,0,180);

//Li diem a la placa que el servo ha d'estar en l'angle d'aquesta variable
MiServo.write(Angulo);

//Esperem 10 milisegons
delay(10);
}


Una vegada ja finalitzat el programa només cal provar-ho, i en cas de que el brunzidor fagi sons no molt agradables, configurar-lo variant el voltatge que li donem amb la funció tone. Per practicar, també es pot canviar el progrma i fer-ne un que mitjançant un pulsador, quan aquest es pulsi el servo fagi 180 graus, i quan es torni a pulsar torni a la posició d'origen; i cada vegada que el servo acabi el seu recorregut, el buzzer produeixi un so. Més o menys com si sigués el pestell d'una porta. A continuació teniu un botó per tal de descarregar l'arxiu Arduino.




Cap comentari:

Publica un comentari a l'entrada

↓↓↓ Si vols deixar un comentari fes-ho aquí ↓↓↓