Röka nr-kemiska pumpa (4 / 4 steg)
Steg 4: Arduino kod
Den tidigare Instructable omfattas LED kodning. För 30mm och 40mm fans, jag hade dem på kontinuerligt, och använder inte Arduino för att driva dem. För 50mm fläkten använde jag funktionen PWM utdata Arduino digital stift (AnalogWrite) för att sakta ner tillräckligt för att dimma flödet ser bra ut. Om det är för långsam, kommer inte fläkten snurra, så en liten prova krävdes för att få produktionsvärde rätt.
/*****************************************************************************
*
* låga animation och rök kontroll för
* - neopioxels (WS2812b) anslutna till stift 6
* - transistior connectedto digitla stift 3
* för att pumpa / jack-o-lyktor med ultraljud rök från en damm mister
*
* 10/28/2015 Carl F. Sutter
*
*******************************************************************************/
#include < Adafruit_NeoPixel.h >
#define LED_PIN 6
#define NUMPIXELS 8
#define MOTOR_PIN 3
Parametern 1 = antal pixlar i remsa
Parameter 2 = Arduino pin-kod (de flesta är giltig)
Parameter 3 = pixel typ flaggor, Lägg ihop efter behov:
NEO_KHZ800 800 KHz bitstream (de flesta NeoPixel produkter w/WS2812 lysdioder)
NEO_KHZ400 400 KHz (classic "v1" (inte v2) FLORA pixlar, WS2811 drivrutiner)
NEO_GRB pixlar är kopplat för GRB bitstream (de flesta NeoPixel produkter)
NEO_RGB pixlar är kopplat för RGB bitstream (v1 FLORA pixlar, inte v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Strip.BEGIN();
Strip.show(); Initiera alla pixlar till "off"
randomSeed(analogRead(0));
pinMode (MOTOR_PIN, OUTPUT);
} / / setup
void loop() {
byte ljusstyrka = random(100,255);
uint32_t färg = remsa. Färg (255, random(50,80), 0);
uint16_t i.
analogWrite (MOTOR_PIN, 128); hastigheten är 0-255, och genom att prova
för (jag = 0; jag < strip.numPixels(); i ++) {
strip.setPixelColor (i, färg);
}
strip.setBrightness(brightness);
Strip.show();
Delay(Random(20,300));
} / / slinga