Rămâi (Robo)Cool în miez de vară! Reglează temperatura în stil Arduino
Este vară, extrem de cald și tot ce ne dorim este să stăm lipiți de un ventilator care să ne răcorească. Sistemele de ventilație sunt scumpe și complicat de instalat, mai ales dacă nu locuiești în propria ta casă, deoarece implică modificări în încăperile unde vor fi plasate. Pentru un pasionat de robotică și tehnologie căruia îi place să regleze temperatura în stil Arduino, avem exact ce trebuie.
Proiectul de astăzi, inspirat de vremea de afară, este creearea unui mic ventilator cu ajutorul unei plăci arduino. Pentru a face un mic ventilator robo(cool), ai nevoie de un releu și un motor compatibil cu arduino. Un releu este un comutator acționat electric, care îți permite să activezi sau să dezactivezi un circuit folosind tensiune și / sau curent mult mai mare decât arduino poate susține.
Iată de ce componente ai nevoie:
- 1 DFRduino UNO R3 (similar cu Arduino UNO R3)
- 1 Prototype Shield
- 9 Cabluri M / M
- 1 LED RGB 5 m
- 1 buton de pornire
- 2 Rezistoare 220R
- 1 Modul releu
- 1 Motor DC 130
- 1 Ventilator
Cablarea
Conectează butonul cu o rezistență de 220Ω pentru a menține semnalul logic aproape de zero volți când butonul este OFF. Releul are 6 pini. Pinul 1 și 2 de pe releu sunt semnale de intrare și sunt conectate separat la pinul digital 3 și GND de pe Arduino. Pinii 3, 4, 5 și 6 de pe releu sunt semnale de ieșire, dar vom folosi doar pinul 4 și pinul 6 în acest moment. Un releu este similar cu un buton on / off.
Codul
//
int buttonPin = 2; // int buttonPin = 2;
int relayPin = 3; // int relayPin = 3;
int relayState = HIGH; // int relayState = HIGH;
int buttonState; // record the current button state
int lastButtonState = LOW; // record the last button state
long lastDebounceTime = 0;
long debounceDelay = 50; // eliminate debounce time
void setup() {
pinMode(buttonPin, INPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, relayState); // configure the initial state of relay
}
void loop() {
int reading = digitalRead(buttonPin); //read the value of button
// once detects change of state, record time
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
// wait for 50ms to evaluate if it is the same state as last state
// if different, change the button state
// if the state of button is high(pressed), change the state of relay
if ((millis() – lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == HIGH) {
relayState = !relayState;
}
}
}
digitalWrite(relayPin, relayState);
//change the last state of button
lastButtonState = reading;
}
După încărcarea programului, poți controla releul și LED-ul cu ajutorul butonului.
Codul pentru deblocarea butonului
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() – lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
……
}
}
Când semnalele sunt recepționate de Arduino, programul nu funcționează imediat – testează dacă semnalul este corect și așteaptă un anumit timp pentru a confirma. Dacă semnalul este corect, programul va funcționa corespunzător.
Motivul pentru care programul testează un semnal corect este că există un proces de declanșare a butonului atunci când este apăsat.
Hardware
Releul de care ai nevoie este un comutator acționat electric, care îți permite să activezi sau să dezactivezi un circuit folosind tensiune și / sau curent mult mai mare decât placa arduino poate susține în mod normal. Nu există nicio legătură între circuitul de joasă tensiune operat de Arduino și circuitul de putere mare – releul separă circuitele unul de celălalt. Releul este o componentă electronică, un dispozitiv care produce anumite modificări ( cum ar fi închiderea și deschiderea unui circuit ) pe baza unui parametru care variază ( precum tensiunea electrica aplicată ) permițând controlarea unui curent de intensitate mare cu ajutorul unui current de intensitate mică.
Să aruncăm o privire la structura interioară a releului:
Releele au 6 pini. Pinii 1 și 2 sunt conectați la pinul digital și GND. Folosim aceste 2 pini pentru alimentarea releului. Există o bobină între Pinul 1 și pinul 2. Când circuitul este HIGH, curentul circulă în bobină, generează un câmp magnetic, închide contactele comutatorului și conectează
NO (Normally Open) până la pinul COM (common) Când circuitul este LOW, nu există curent în bobină, prin urmare NC (Normally Closed) se conectează la pinul COM. Conectăm Pin 4 și Pin 6 pentru a controla pornirea / oprirea releului și a LED-ului.
Diferența dintre motorul DC, Stepper Motors și Servos
Motoarele DC (Direct Current) sunt dispozitive care schimbă energia electrică în energie cinetică. Când alimentezi cu curent un motor DC, acesta va începe să se rotească continuu.
Când comutați polaritățile, motorul DC se va roti în direcția opusă. Un motor funcționează continuu la turații ridicate (rotații pe minut). Aceste rotații ale arborelui motor nu pot fi controlate la un unghi specific, dar poți controla viteza. Deoarece rotațiile sunt atât de rapide, nu este practic să le folosești pentru vehicule.
Un motor DC are un set de angrenaje pentru a reduce viteza și a crește cuplul. Acest lucru face mai practică utilizarea pentru aplicații pentru vehicule. Viteza sa poate fi controlată de PWM. Un servo este de asemenea un motor. Controlează poziția motorului printr-un sistem de feedback. Servo-urile sunt practice pentru a fi utilizate pentru brațele robotice.
Fie că te apuci pe bune de proiectul de mai sus sau pur și simplu te-am făcut curios legat de ce poți face cu o placă Arduino și o mână de piese suplimentare, există un început pentru fiecare pasionat de robotică. Noi credem că un început excelent este un kit complet cu care să te joci, iar kitul de la RobotLinking include tot ce ai nevoie ca să înveți cum să alimentezi proiectul tău cu Arduino UNO R3. Instrucțiunile ajută mult și vei vedea că pachetul e perfect și pentru copii.
Dacă ești pasionat de robotică, dacă vrei să înveți sistemele din spatele acestor construcții fascinante, pe RoboFun vei găsi toate uneltele și instrumentele necesare pentru a da viață proiectului tău Arduino.