Color föränderlig natten ljus med ATtiny (2 / 8 steg)
Steg 2: programmering
TherearemanygreatsitesandotherinstructablesthatgivestepbystepinstructionsonhowtoprogramaATtiny85withaArduino.YoucouldjustusetheArduinoinsteadoftheATtiny85ifyoulike. Du skulle bara behöva ändra pin platser i koden. ThereasonIusedtheATtiny85wasbecauseitisacheapchipandIwantedthesmallerformfactor.TheATtiny85canbeprogramedonashieldifyouhaveoneorrightonabreadboard.
Kontrollera:
Här är skissen/program:
attiny85 RGB LED rainbow fade med LDR
Av Matt Jenkins
CONST int redPin = 2;
CONST int grnPin = 4;
CONST int bluPin = 1;
int sensorPin = 3; Välj input PIN-koden för ldr
unsigned int sensorValue = 0; variabel för att lagra värdet kommer från ldr
void setup()
{
pinMode (redPin,OUTPUT);
pinMode (grnPin,OUTPUT);
pinMode (bluPin,OUTPUT);
Starta serieport
/ / Serial.begin(9600); // ta bort kommentar för Följetong port // starta följetong för utgång - för provning
}
void loop()
{
läsadenvärdefråndenldr:
sensorValue=analogRead(sensorPin);
if(sensorValue>400) {/ /AngedenLEDav/ /lägrenummerförpånärmörkareellerhöjanummerförpånärljusare
digitalWrite (redPin,hög);
digitalWrite (grnPin,hög);
digitalWrite (bluPin,hög);
}
annat {//Fadegenomfärger
redtoyellow();
yellowtogreen();
greentocyan();
cyantoblue();
bluetomajenta();
majenatored();
}
dröjsmål(30);
// För Felsökning - Skriv ut ute vår data, ta bort kommentar den linjerna nedan
Serial.Print (sensorValue,DEC); // skriva ut den värde (0to1024)
Serial.println("");
/ / delay(500);
}
void redtoyellow()
{
digitalWrite (redPin,hög);
digitalWrite (bluPin,låg);
tonasuppgrön
för (bytejag = 1; jag < 100; i++) {
byteon=i;
byteav=100-på;
för (byteen = 0; en < 100; a++ ){
digitalWrite (grnPin,hög);
delayMicroseconds(on);
digitalWrite (grnPin,låg);
delayMicroseconds(off);
}
}
}
void yellowtogreen()
{
digitalWrite (grnPin,hög);
digitalWrite (bluPin,låg);
// blekna ned red
för (bytejag = 1; jag < 100; i++) {
byte on = 100-i.
byte off = i;
for(bytea=0; en < 100; a++ ){
digitalWrite (redPin,hög);
delayMicroseconds(on);
digitalWrite (redPin,låg);
delayMicroseconds(off);
}
}
}
void greentocyan()
{
digitalWrite (grnPin,hög);
digitalWrite (redPin,låg);
// blekna up blå
för (bytejag = 1; jag < 100; i++) {
byte on = i;
byte off = 100-på;
for(bytea=0; en < 100; a++ ){
digitalWrite (bluPin,hög);
delayMicroseconds(on);
digitalWrite (bluPin,låg);
delayMicroseconds(off);
}
}
}
void cyantoblue()
{
digitalWrite (bluPin,hög);
digitalWrite (redPin,låg);
// blekna ned grön
för (bytejag = 1; jag < 100; i++) {
byte on = 100-i.
byte utanför = i;
for(bytea=0; en < 100; a++ ){
digitalWrite (grnPin,hög);
delayMicroseconds(on);
digitalWrite (grnPin,låg);
delayMicroseconds(off);
}
}
}
void bluetomajenta()
{
digitalWrite (bluPin,hög);
digitalWrite (grnPin,låg);
// blekna up röd
för (bytejag = 1; jag < 100; i++) {
byte on = i;
byte utanför = 100-på;
for(bytea=0; en < 100; a++ ){
digitalWrite (redPin,hög);
delayMicroseconds(on);
digitalWrite (redPin,låg);
delayMicroseconds(off);
}
}
}
void majenatored()
{
digitalWrite (redPin,hög);
digitalWrite (grnPin,låg);
// blekna ned blå
för (bytejag = 1; jag < 100; i++) {
byte on = 100-i.
byte utanför = i;
for(bytea=0; en < 100; a++ ){
digitalWrite (bluPin,hög);
delayMicroseconds(on);
digitalWrite (bluPin,låg);
delayMicroseconds(off);
}
}
}