fbpx

Arduino Projekt 13: DYI Fan (Arduino Begynder Kit)

I dette arduino-projekt vil vi bruge et relæ og en motor i dette arduino Begynder kit til at fremstille en lille ventilator. Et relæ er en elektrisk betjent switch, der giver dig mulighed for at tænde eller slukke for et kredsløb ved hjælp af spænding og / eller strøm meget højere end Arduino kan håndtere.

Komponenter

  • DFRduino UNO R3 (ssamme som Arduino UNO R3)*1
  • Prototype Shield *1
  • Jumber Cables M/M *9
  • 5m RGB LED*1
  • Pushbutton*1
  • Resistor 220R*2
  • Relay *1
  • 130 Motor*1
  • Fan*1

Ledningsføring

Forbind knappen med en 220Ω pull-down modstand for at holde det logiske signal nær nul volt, når knappen er frakoblet. Relæet har 6 ben. Pin 1 og 2 på relæet er indgangssignaler og er separat forbundet til digital pin 3 og GND på Arduino. Stifter 3, 4, 5 og 6 på relæet er udgangssignalerne, men vi vil kun bruge pin 4 og pin 6 på dette tidspunkt. Et relæ ligner en trykknap, der også har 2 forbindelser.

Kode

Sample Code 13-1:

//Project thirteen - the Arduino to control fan operation
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;

} Afbrydelse af trykknap er if (læsning! = lastButtonState)

{ lastDebounceTime = millis (); } if ((millis () – lastDebounceTime)> debounceDelay) { if (læsning! = buttonState) { …… } }

Når der modtages signaler af Arduino, fungerer programmet ikke med det samme – det tester om signalet er korrekt og venter på et bestemt tidspunkt for at bekræfte. Hvis signalet er korrekt, fungerer programmet i overensstemmelse hermed. Årsagen til, at programmet tester for et korrekt signal, er, at der er en hoppeproces for knappen, når der trykkes på. Det genererer muligvis det forkerte signal, så vi tester det for at løse problemet i hardware.

Hardware

Et relæ er en elektrisk betjent switch, der giver dig mulighed for at tænde eller slukke for et kredsløb ved hjælp af spænding og / eller strøm meget højere end Arduino normalt kan håndtere. Der er ingen forbindelse mellem det lavspændingskredsløb, der drives af Arduino, og højeffektkredsløbet – relæet isolerer kredsløbene fra hinanden. Lad os se på den indre struktur i relæet:

Relæer har 6 ben. Pins 1 og 2 er forbundet til den digitale pin og GND. Vi bruger disse 2 stifter til at drive relæet. Der er en spole mellem Pin 1 og Pin 2. Når kredsløbet er HØJ, strømmer strømmen i spolen, genererer et magnetfelt, lukker switchkontakterne og forbinder NEJ (normalt åben) til COM (almindelig)-pin. Når kredsløbet er lavt, kører ingen strøm i spolen, derfor forbinder NC (normalt lukket) til den fælles pin. Vi forbinder pin 4 og pin 6 for at kontrollere tændingen og slukket for relæet og lysdioden.

Forskellen mellem DC motorer, Stepper Motorer og Servoer

DC (jævnstrøm) motorer er enheder, der skifter elektrisk energi til kinetisk energi. Når du leverer strøm til en jævnstrømsmotor, begynder den at rotere kontinuerligt, indtil denne strøm er fjernet. Når du skifter polariteter, vil den dreje i den modsatte retning. En motor kører kontinuerligt med et højt omdrejningstal (omdrejninger pr. Minut). Disse omdrejninger af motorakslen kan ikke styres i en bestemt vinkel, men du kan kontrollere hastigheden. Da rotationerne er så hurtige, er det upraktisk at bruge det til køretøjer. En trinmotor / steppermotor har et gearkassesæt på jævnstrømsmotoren for at afbryde hastigheden og øge drejningsmomentet. Dette gør det mere praktisk at bruge til køretøjsanvendelser. Dets hastighed kan styres af PWM. En servo er også en motor. Det styrer motorens position ved hjælp af et feedbacksystem, som vi ser i de servoprojekterne. Servoer er praktiske at bruge til robotter.