Interaktiv skulptur: din våg av lycka (4 / 4 steg)
Steg 4: Kontrollera LED NEON FLEX med Arduino och närvaro sensor.
Den interaktiva av lappa gjordes genom att använda Arduino, en närvaro sensor Max Botix (1 x ultraljud Range Finder – Maxbotix LV-EZ0) och ledde NEON FLEX
1. Kontrollera LED NEON FLEX 12v med Arduino: The LED NEON FLEX kan kontrolleras genom användning någon makt NPN eller N-kanal MOSFET, se till att transistorn är specificerad för att kunna passera så mycket ström som du behöver. Till exempel eftersom vi dra om 0.2Amps per kanal per meter, om du har en 5 meter band kommer att du behöva passera upp till 1 Ampere per transistor. Få de biffiga "TO-220" paketen, inte dinky lilla killarna. Se till att de se ut så här: för grundläggande och billiga användning vi föreslår att du använder N-kanal MOSFETs som STP16NF06 - de är mycket populärt och billigt. Om du inte kan få dem, TIP120 är också bra men det finns mer spänning förlust i en transistor än i en MOSFET som är därför vi föreslår de första (mindre värmeförlust, mer ljus!). I detta projekt använde jag 1 TIP120 för varje färg. Projektet hade 6 färger. Så, jag använde 6 TIP120 i en krets.
2. närvaro sensorn förbands i Pin nummer 8.
Så koden:
#include "Maxbotix.h"
int ledde = 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.
flyta distancia = 40;
void setup() {
Serial.BEGIN(9600);
pinMode ledde (, OUTPUT);
pinMode (led1, produktionen);
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);
pinMode (led5, produktionen);
}
loop rutinen körs för evigt om och om igen:
void loop() {
Distancia=rangeSensorPW.getRange();
Serial.Print ("cm -");
Serial.println(Distancia);
om (distancia < 80) {
/ * för (int jag = 0; jag < pinCount; i ++) {
digitalWrite (ledPins [i], hög);
Delay(timer);
digitalWrite (ledPins [i], låg); */
digitalWrite (ledde, högt);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
digitalWrite (led5, hög);
Delay(50);
digitalWrite (ledde, låg);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
digitalWrite (led5, låg);
Delay(30);
digitalWrite (ledde, högt); Aktivera LED (HIGH är spänningsnivån)
Delay(50); vänta en sekund
digitalWrite (ledde, låg); Inaktivera LED genom att spänningen låg
Delay(30); vänta en sekund
digitalWrite (led1, hög); Aktivera LED (HIGH är spänningsnivån)
Delay(50); vänta en sekund
digitalWrite (led1, låg); Inaktivera LED genom att spänningen låg
Delay(30); vänta en sekund
digitalWrite (led2, hög); Aktivera LED (HIGH är spänningsnivån)
Delay(50); vänta en sekund
digitalWrite (led2, låg); Inaktivera LED genom att spänningen låg
Delay(30); vänta en sekund
digitalWrite (ledde, högt);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
digitalWrite (led5, hög);
Delay(50);
digitalWrite (ledde, låg);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
digitalWrite (led5, låg);
Delay(30);
digitalWrite (led5, hög); Aktivera LED (HIGH är spänningsnivån)
Delay(50); vänta en sekund
digitalWrite (led5, låg); Inaktivera LED genom att spänningen låg
Delay(30); vänta en sekund
digitalWrite (led3, hög); Aktivera LED (HIGH är spänningsnivån)
Delay(50); vänta en sekund
digitalWrite (led3, låg); Inaktivera LED genom att spänningen låg
Delay(30); vänta en sekund
digitalWrite (led4, hög); Aktivera LED (HIGH är spänningsnivån)
Delay(50); vänta en sekund
digitalWrite (led4, låg); Inaktivera LED genom att spänningen låg
Delay(30); vänta en sekund
Serial.println("encendido");
Delay(1000);
digitalWrite(MotorControl,LOW); / / NO3 och COM3 frånkopplad;
Delay(100);
}
annat
{
digitalWrite (ledde, låg);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
digitalWrite (led5, låg);
Serial.println("apagado");
Delay(100);
}
}