Étape 2: programmation
ThatgivestepbystepinstructionsonhowtoprogramaATtiny85withaArduino.YoucouldjustusetheArduinoinsteadoftheATtiny85ifyoulike de Therearemanygreatsitesandother deinstructables. Vous devrez simplement modifier les emplacements des broches dans le code. ThereasonIusedtheATtiny85wasbecauseitisacheapchipandIwantedthesmallerformfactor.TheATtiny85canbeprogramedonashieldifyouhaveoneorrightonabreadboard.
Vérifier:
Voici l’esquisse/programme :
attiny85 RGB LED rainbow fondu avec LDR
Par Matt Jenkins
const int redPin = 2 ;
const int grnPin = 4 ;
const int bluPin = 1 ;
int sensorPin = 3 ; Sélectionnez l’entrée pin pour le ldr
unsigned int sensorValue = 0 ; variable pour stocker la valeur provenant de la ldr
void setup()
{
pinMode (redPin,OUTPUT);
pinMode (grnPin,OUTPUT);
pinMode (bluPin,OUTPUT);
Serial port de départ
/ / Serial.begin(9600) ; // décommentez pour Serial port // commencer à Serial pour sortie - pour test
}
void loop()
{
lirelavaleurdelaldr :
sensorValue=analogRead(sensorPin) ;
if(sensorValue>400) {/ /définirlaLEDOFF/ /inférieurnombrepoursurquandplus sombreousoulèventnombrepoursurquandplus lumineux
digitalWrite (redPin,haute) ;
digitalWrite (grnPin,haute) ;
digitalWrite (bluPin,haute) ;
}
else {//Fadeparcouleurs
redtoyellow() ;
yellowtogreen() ;
greentocyan() ;
cyantoblue() ;
bluetomajenta() ;
majenatored() ;
}
retard(30) ;
// Pour Le débogage - Print sur notre données, décommentez le lignes ci-dessous
Serial.Print (sensorValue,DEC); // Imprimer le valeur (0to1024)
Serial.println("") ;
/ / delay(500) ;
}
Sub redtoyellow()
{
digitalWrite (redPin,haute) ;
digitalWrite (bluPin,faible) ;
fondujusqu'àvert
pour (bytei = 1; j’ai < 100 ; i++) {
byteon=i;
octethors=100-sur ;
pour (byteun = 0; un < 100 ; a++ ){
digitalWrite (grnPin,haute) ;
delayMicroseconds(on) ;
digitalWrite (grnPin,faible) ;
delayMicroseconds(off) ;
}
}
}
Sub yellowtogreen()
{
digitalWrite (grnPin,HIGH);
digitalWrite (bluPin,faible);
// se fanent vers le bas red
pour (bytei = 1; j’ai < 100 ; i++) {
octet on = 100-i ;
octet off = i;
for(bytea=0; un < 100 ; a++ ){
digitalWrite (redPin,HIGH);
delayMicroseconds(on) ;
digitalWrite (redPin,faible);
delayMicroseconds(off) ;
}
}
}
Sub greentocyan()
{
digitalWrite (grnPin,HIGH);
digitalWrite (redPin,faible);
// se fanent up bleu
pour (bytei = 1; j’ai < 100 ; i++) {
octet on = i;
octet off = 100-sur ;
for(bytea=0; un < 100 ; a++ ){
digitalWrite (bluPin,HIGH);
delayMicroseconds(on) ;
digitalWrite (bluPin,faible);
delayMicroseconds(off) ;
}
}
}
Sub cyantoblue()
{
digitalWrite (bluPin,HIGH);
digitalWrite (redPin,faible);
// se fanent vers le bas vert
pour (bytei = 1; j’ai < 100 ; i++) {
octet on = 100-i ;
octet hors = i;
for(bytea=0; un < 100 ; a++ ){
digitalWrite (grnPin,HIGH);
delayMicroseconds(on) ;
digitalWrite (grnPin,faible);
delayMicroseconds(off) ;
}
}
}
Sub bluetomajenta()
{
digitalWrite (bluPin,HIGH);
digitalWrite (grnPin,faible);
// se fanent up rouge
pour (bytei = 1; j’ai < 100 ; i++) {
octet on = i;
octet hors = 100-sur ;
for(bytea=0; un < 100 ; a++ ){
digitalWrite (redPin,HIGH);
delayMicroseconds(on) ;
digitalWrite (redPin,faible);
delayMicroseconds(off) ;
}
}
}
Sub majenatored()
{
digitalWrite (redPin,HIGH);
digitalWrite (grnPin,faible);
// se fanent vers le bas bleu
pour (bytei = 1; j’ai < 100 ; i++) {
octet on = 100-i ;
octet hors = i;
for(bytea=0; un < 100 ; a++ ){
digitalWrite (bluPin,HIGH);
delayMicroseconds(on) ;
digitalWrite (bluPin,faible);
delayMicroseconds(off) ;
}
}
}