Stap 4: Controleren LED NEON FLEX met Arduino en aanwezigheid sensor.
De interactieve van het stuk werd gedaan met behulp van Arduino, een aanwezigheid sensor Max Botix (1 x ultrasoon Range Finder – Maxbotix LV-EZ0) en LED NEON FLEX
1. beheersing van de LED NEON FLEX 12v met Arduino: de LED NEON FLEX kan worden gecontroleerd door gebruik enige macht NPN of N-kanaal MOSFET, zorg ervoor dat de transistor wordt beoordeeld om te kunnen doorgeven zo veel stroom als u nodig hebt. Bijvoorbeeld, aangezien we trekken met betrekking tot 0.2Amps per kanaal per meter, hebt u een strook van 5 meter zal moet u overgaan tot 1 ampère per transistor. Krijgen de vlezige "Aan-220" pakketten, niet de dinky kleine jongens. Zorg ervoor dat ze er als volgt uitzien: voor eenvoudige, goedkope gebruik raden we u aan N-kanaal MOSFETs zoals de STP16NF06 - ze zijn erg populair en goedkoop. Als je niet die, TIP120 zijn ook goed maar er is meer verlies van de spanning in een transistor dan in een MOSFET en daarom raden we die eerste (minder warmteverlies, meer licht!). In dit project gebruikte ik 1 TIP120 voor elke kleur. Het project had 6 kleuren. Dus, ik gebruikte 6 TIP120 in een circuit.
2. de aanwezigheid sensor waren verbonden in Pin-nummer 8.
Voer de code:
#include "Maxbotix.h"
int geleid = 13;
int led1 = 11;
int led2 = 10;
int led3 = 9;
int led4 = 5;
int led5 = 3;
int ledPins [] {} =
13, 11, 10, 9, 5, 3};
int pinCount = 5;
int timer = 60;
Maxbotix rangeSensorPW (8, Maxbotix::PW, Maxbotix::LV);
zweven distancia = 40;
VOID Setup {}
Serial.begin(9600);
pinMode led (, uitvoer);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (led5, OUTPUT);
}
de routine van de lus wordt uitgevoerd over en weer forever:
void loop {}
distancia=rangeSensorPW.getRange();
Serial.Print ("cm -");
Serial.println(distancia);
Als (distancia < 80) {}
/ * for (int i = 0; ik < pinCount; i ++) {}
digitalWrite (ledPins [i], hoge);
delay(timer);
digitalWrite (ledPins [i], laag); */
digitalWrite (led, hoog);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
digitalWrite (led4, hoge);
digitalWrite (led5, hoge);
delay(50);
digitalWrite (led, laag);
digitalWrite (led1, laag);
digitalWrite (led2, laag);
digitalWrite (led3, laag);
digitalWrite (led4, laag);
digitalWrite (led5, laag);
delay(30);
digitalWrite (led, hoog); de LED inschakelen (HIGH is het spanningsniveau)
delay(50); wachten op een tweede
digitalWrite (led, laag); de LED uitschakelen door de spanning laag
delay(30); wachten op een tweede
digitalWrite (led1, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(50); wachten op een tweede
digitalWrite (led1, laag); de LED uitschakelen door de spanning laag
delay(30); wachten op een tweede
digitalWrite (led2, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(50); wachten op een tweede
digitalWrite (led2, laag); de LED uitschakelen door de spanning laag
delay(30); wachten op een tweede
digitalWrite (led, hoog);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
digitalWrite (led4, hoge);
digitalWrite (led5, hoge);
delay(50);
digitalWrite (led, laag);
digitalWrite (led1, laag);
digitalWrite (led2, laag);
digitalWrite (led3, laag);
digitalWrite (led4, laag);
digitalWrite (led5, laag);
delay(30);
digitalWrite (led5, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(50); wachten op een tweede
digitalWrite (led5, laag); de LED uitschakelen door de spanning laag
delay(30); wachten op een tweede
digitalWrite (led3, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(50); wachten op een tweede
digitalWrite (led3, laag); de LED uitschakelen door de spanning laag
delay(30); wachten op een tweede
digitalWrite (led4, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(50); wachten op een tweede
digitalWrite (led4, laag); de LED uitschakelen door de spanning laag
delay(30); wachten op een tweede
Serial.println("encendido");
delay(1000);
digitalWrite(MotorControl,LOW); / / NO3 en COM3 verbroken;
delay(100);
}
anders
{
digitalWrite (led, laag);
digitalWrite (led1, laag);
digitalWrite (led2, laag);
digitalWrite (led3, laag);
digitalWrite (led4, laag);
digitalWrite (led5, laag);
Serial.println("apagado");
delay(100);
}
}