M-am tot gandit cum pot acapara un copil de 14 ani sa puna mana pe letcon si sa cositoreasca diverse piese, ca sa se obisnuieasca cu folosirea acestuia si ca sa-si faca putina dexteritate, poate-i va fi de folos vreodata.
M-am gandit sa-l implic intr-un proiect care sa-i placa. Si am reusit.
I-am spus ca in acest an pe unul din geamuri o sa ne facem, o perdea luminoasa, din leduri RGB, cu un arduino.
A fost incantat de idee, asa ca punct ochit, punct lovit.
Lipirea a aproape 100 de leduri RGB, care fiecare are 4 terminale, de firicele subtiri scoase din cablu UTP vechi nefolosit, nu e chiar un lucru simplu pentru un copil, insa acesta l-a si ambitionat. Bineinteles nu a facut el toate cele aproape 400 de lipituri, iar partea electronica am lipit-o eu, pentru ca am vrut sa-l fac destul de inghesuit, lucru pe care l-am si reusit in final.
Problema montajului in acest moment este faptul ca este controlat de un arduino nano, in momentul in care o sa am putin timp liber o sa-l schimb cu un mega, si acesta are doar 6 pini PWM, cu care putem face efecte de fade down/up, insa pentru primul test este ok.
Nu am reusit sa fac acest efect pe pinii analogici, desii credeam ca va functiona si pe acelea.
Spor la bricolat, si daca nu apar pana la Craciun pe aici, va doresc Craciun Fericit !
Blinking LED next level ! Christmas lights ! - Arduino for beginners
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Blinking LED next level ! Christmas lights ! - Arduino for beginners
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: Blinking LED next level ! Christmas lights ! - Arduino for beginners
Materialele folosite pentru acest mic proiect sint urmatoarele.
- Cablu UTP vechi pe care l-am recuperat din vechea retea locala a casei.
- 12 siruri a 8 leduri pe sir, care inseamna 8x12 leduri RGB, cumparate de pe aliexpress. 100 de bucati cumparate la
- Un arduino Nano, dar acesta in functie de timpul liber am sa-l inlociesc cu un mega, probabil intre sarbatori sau dupa, pana atunci nu o sa am timp de nimic.
- Alimentare de 5V pentru Arduino
- 12 x bucati IRF530N tranzistori mosfet, 20 de bucat cumparate la
- o placa de prototipare fara cositorire, (breadboard) acesta va fi inlocuit cu un pcb universal, i-l folosesc doar pana fac versiunea finala
- 12 bucati rezistoare de 680 ohmi, 100 de bucati cumparate la
- 2 bucati placa prototipare 2x8 cm, modelul care se cositoreste, momentan folosit doar 1 bucata pentru mosfeti, cealalta va inlocui breadboardul
- 6 bucati capete terminale cu 2 poli, 20 de bucati cumparate la
Codul care se incarca in Arduino via arduino IDE este urmatorul:
si pleaca de la BLINK LED, doar ca a fost putin mai adaugat, pentru a avea diverse animatii cu cele 12 siruri.
Schemele sirurilor, si legaturile la Arduino le puteti vedea in aceasta schema
Iar schema bloc a sirurilor este cea din imaginea urmatoare
In momentul in care o sa schimb microcontrolerul si rescriu codul, o sa revin cu detalii.
Spor la bricolat !
- Cablu UTP vechi pe care l-am recuperat din vechea retea locala a casei.
- 12 siruri a 8 leduri pe sir, care inseamna 8x12 leduri RGB, cumparate de pe aliexpress. 100 de bucati cumparate la
- Un arduino Nano, dar acesta in functie de timpul liber am sa-l inlociesc cu un mega, probabil intre sarbatori sau dupa, pana atunci nu o sa am timp de nimic.
- Alimentare de 5V pentru Arduino
- 12 x bucati IRF530N tranzistori mosfet, 20 de bucat cumparate la
- o placa de prototipare fara cositorire, (breadboard) acesta va fi inlocuit cu un pcb universal, i-l folosesc doar pana fac versiunea finala
- 12 bucati rezistoare de 680 ohmi, 100 de bucati cumparate la
- 2 bucati placa prototipare 2x8 cm, modelul care se cositoreste, momentan folosit doar 1 bucata pentru mosfeti, cealalta va inlocui breadboardul
- 6 bucati capete terminale cu 2 poli, 20 de bucati cumparate la
Codul care se incarca in Arduino via arduino IDE este urmatorul:
Code: Select all
//String 1
#define pinR1 11
#define pinG1 10
#define pinB1 9
//String 2
#define pinR2 6
#define pinG2 5
#define pinB2 3
//String 3
#define pinR3 A0
#define pinG3 A1
#define pinB3 A2
//String 4
#define pinR4 A3
#define pinG4 A4
#define pinB4 A5
void setup() {
pinMode(pinR1, OUTPUT);
pinMode(pinG1, OUTPUT);
pinMode(pinB1, OUTPUT);
pinMode(pinR2, OUTPUT);
pinMode(pinG2, OUTPUT);
pinMode(pinB2, OUTPUT);
pinMode(pinR3, OUTPUT);
pinMode(pinG3, OUTPUT);
pinMode(pinB3, OUTPUT);
pinMode(pinR4, OUTPUT);
pinMode(pinG4, OUTPUT);
pinMode(pinB4, OUTPUT);
}
void loop()
{
Anim1(150,15);
Anim2(200,40);
Anim3(250,40);
Anim4(200,40);
Anim5(250,20);
Anim6(3,3);
Anim7(5,1);
}
void Anim1(int wait, int durata)
{
for(int d = 1; d < durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,0);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,0,255,0);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,0,0,255);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,255);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,0,255,255);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,255,0);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,255,255);
delay(wait);
Led(r,0,0,0);
}
}
}
void Anim2(int wait, int rep)
{
for(int i = 0; i < rep; i++)
{
int str = rand() % 5;
int r = rand() % 256;
int g = rand() % 256;
int b = rand() % 256;
Led(str, r, g, b);
delay(wait);
}
}
void Anim3(int wait, int rep)
{
for(int i = 0; i < rep; i++)
{
int str = rand() % 5;
int r = rand() % 256;
int g = rand() % 256;
int b = rand() % 256;
Led(1, r, g, b);
Led(2, r, g, b);
Led(3, r, g, b);
Led(4, r, g, b);
delay(wait);
}
}
void Anim4(int wait, int durata)
{
int comparator;
int comparator2;
int comparator3;
for(int d = 1; d < durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,0);
comparator = r-1;
if (comparator < 1) comparator = comparator + 4;
Led(comparator,0,255,0);
comparator2 = r-2;
if (comparator2 < 1) comparator2 = comparator2 + 4;
Led(comparator2,0,0,255);
comparator3 = r-3;
if (comparator3 < 1) comparator3 = comparator3 + 4;
Led(comparator3,255,255,255);
delay(wait);
Led(r,0,0,0);
}
}
}
void Anim5(int wait, int durata)
{
int comparator;
int comparator2;
int comparator3;
for(int d = 1; d < durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,0);
comparator = r-1;
if (comparator < 1) comparator = comparator + 4;
Led(comparator,255,0,0);
comparator2 = r-2;
if (comparator2 < 1) comparator2 = comparator2 + 4;
Led(comparator2,0,0,255);
comparator3 = r-3;
if (comparator3 < 1) comparator3 = comparator3 + 4;
Led(comparator3,0,0,255);
delay(wait);
Led(r,0,0,0);
delay(wait);
}
}
}
void Anim6(int wait, int durata)
{
Led(1,0,0,0);
Led(2,0,0,0);
Led(3,0,0,0);
Led(4,0,0,0);
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,0);
Led(2,i,0,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,i,0);
Led(2,0,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,0,i);
Led(2,0,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,i);
Led(2,i,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,0);
Led(2,i,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,i);
Led(2,i,i,i);
if (i == 255) x = -1;
delay(wait);
}
}
}
void Anim7(int wait, int durata)
{
Led(1,0,0,0);
Led(2,0,0,0);
Led(3,0,0,0);
Led(4,0,0,0);
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,0);
Led(2,i,0,0);
Led(3,i,0,0);
Led(4,i,0,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,i,0);
Led(2,0,i,0);
Led(3,0,i,0);
Led(4,0,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,0,i);
Led(2,0,0,i);
Led(3,0,0,i);
Led(4,0,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,i);
Led(2,i,0,i);
Led(3,255,0,i);
Led(4,255,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,0);
Led(2,i,i,0);
Led(3,i,i,0);
Led(4,i,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,i);
Led(2,i,i,i);
Led(3,i,i,i);
Led(4,i,i,i);
if (i == 255) x = -1;
delay(wait);
}
}
}
void Led(int Number, int Red, int Green, int Blue)
{
if(Number == 1)
{
analogWrite(pinR1, Red);
analogWrite(pinG1, Green);
analogWrite(pinB1, Blue);
}
if(Number == 2)
{
analogWrite(pinR2, Red);
analogWrite(pinG2, Green);
analogWrite(pinB2, Blue);
}
if(Number == 3)
{
analogWrite(pinR3, Red);
analogWrite(pinG3, Green);
analogWrite(pinB3, Blue);
}
if(Number == 4)
{
analogWrite(pinR4, Red);
analogWrite(pinG4, Green);
analogWrite(pinB4, Blue);
}
}
si pleaca de la BLINK LED, doar ca a fost putin mai adaugat, pentru a avea diverse animatii cu cele 12 siruri.
Schemele sirurilor, si legaturile la Arduino le puteti vedea in aceasta schema
Iar schema bloc a sirurilor este cea din imaginea urmatoare
In momentul in care o sa schimb microcontrolerul si rescriu codul, o sa revin cu detalii.
Spor la bricolat !
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: Blinking LED next level ! Christmas lights ! - Arduino for beginners
Dupa cum am promis, am schimbat Arduino Nano cu un Arduino Mega.
Motivul schimbarii, find numarul de pini PWM, doar 6 la Arduino Nano, cea ce nu-mi ajungea sa controlez 4 stringuri de leduri RGB cu 3 alimentari.
Fiecare LED in parte are un catod comun care se leaga de polaritatea negativa (la minus, sau ground), iar celelalte 3 picioruse ale diodei luminoscente RGB sint fiecare una din culori, respectiv rosu, verde si albastru. Astfel pentru a crea efecte de estompare a luminii, respectiv a culorilor, in jos sau in sus am nevoie de 4 x 3 pini PWM.
Aici a intervenit Arduino Mega.
Conectarea pinilor la mega, i-l gasiti in codul de pe pastebin.
sau si aici:
Restul componentelor au ramas cele de dinainte, doar microprocesorul, codul si legaturile mosfetilor la Arduino Mega s-au schimbat.
Un mic video cu rezultatele obtinute:
Spor la bricolat, si sarbatori fericite !
Craciun Fericit !
Motivul schimbarii, find numarul de pini PWM, doar 6 la Arduino Nano, cea ce nu-mi ajungea sa controlez 4 stringuri de leduri RGB cu 3 alimentari.
Fiecare LED in parte are un catod comun care se leaga de polaritatea negativa (la minus, sau ground), iar celelalte 3 picioruse ale diodei luminoscente RGB sint fiecare una din culori, respectiv rosu, verde si albastru. Astfel pentru a crea efecte de estompare a luminii, respectiv a culorilor, in jos sau in sus am nevoie de 4 x 3 pini PWM.
Aici a intervenit Arduino Mega.
Conectarea pinilor la mega, i-l gasiti in codul de pe pastebin.
sau si aici:
Code: Select all
//Leds
//String 1
#define pinR1 13
#define pinG1 12
#define pinB1 11
//String 2
#define pinR2 10
#define pinG2 9
#define pinB2 8
//String 3
#define pinR3 7
#define pinG3 6
#define pinB3 5
//String 4
#define pinR4 4
#define pinG4 3
#define pinB4 2
void setup() {
Serial.begin(9600);
pinMode(pinR1, OUTPUT);
pinMode(pinG1, OUTPUT);
pinMode(pinB1, OUTPUT);
pinMode(pinR2, OUTPUT);
pinMode(pinG2, OUTPUT);
pinMode(pinB2, OUTPUT);
pinMode(pinR3, OUTPUT);
pinMode(pinG3, OUTPUT);
pinMode(pinB3, OUTPUT);
pinMode(pinR4, OUTPUT);
pinMode(pinG4, OUTPUT);
pinMode(pinB4, OUTPUT);
}
void loop()
{
Anim1(150,15);
Anim2(200,40);
Anim3(250,40);
Anim4(200,40);
Anim5(250,20);
///Anim6(3,3);
Anim7(5,2);
/// Anim8(8, 6);
Anim9(1, 6);
Anim10(2, 6, 2);
Anim11(2, 40, 1);
Anim12(2, 40, 1);
}
void Anim1(int wait, int durata)
{
for(int d = 1; d < durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,0);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,0,255,0);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,0,0,255);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,255);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,0,255,255);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,255,0);
delay(wait);
Led(r,0,0,0);
}
}
for(int d = 1; d <= durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,255,255);
delay(wait);
Led(r,0,0,0);
}
}
}
void Anim2(int wait, int rep)
{
for(int i = 0; i < rep; i++)
{
int str = rand() % 5;
int r = rand() % 256;
int g = rand() % 256;
int b = rand() % 256;
Led(str, r, g, b);
delay(wait);
}
}
void Anim3(int wait, int rep)
{
for(int i = 0; i < rep; i++)
{
int str = rand() % 5;
int r = rand() % 256;
int g = rand() % 256;
int b = rand() % 256;
Led(1, r, g, b);
Led(2, r, g, b);
Led(3, r, g, b);
Led(4, r, g, b);
delay(wait);
}
}
void Anim4(int wait, int durata)
{
int comparator;
int comparator2;
int comparator3;
for(int d = 1; d < durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,0);
comparator = r-1;
if (comparator < 1) comparator = comparator + 4;
Led(comparator,0,255,0);
comparator2 = r-2;
if (comparator2 < 1) comparator2 = comparator2 + 4;
Led(comparator2,0,0,255);
comparator3 = r-3;
if (comparator3 < 1) comparator3 = comparator3 + 4;
Led(comparator3,255,255,255);
delay(wait);
Led(r,0,0,0);
}
}
}
void Anim5(int wait, int durata)
{
int comparator;
int comparator2;
int comparator3;
for(int d = 1; d < durata; d++)
{
for(int r = 1; r <= 4; r++)
{
Led(r,255,0,0);
comparator = r-1;
if (comparator < 1) comparator = comparator + 4;
Led(comparator,255,0,0);
comparator2 = r-2;
if (comparator2 < 1) comparator2 = comparator2 + 4;
Led(comparator2,0,0,255);
comparator3 = r-3;
if (comparator3 < 1) comparator3 = comparator3 + 4;
Led(comparator3,0,0,255);
delay(wait);
Led(r,0,0,0);
delay(wait);
}
}
}
void Anim6(int wait, int durata)
{
Led(1,0,0,0);
Led(2,0,0,0);
Led(3,0,0,0);
Led(4,0,0,0);
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,0);
Led(2,i,0,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,i,0);
Led(2,0,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,0,i);
Led(2,0,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,i);
Led(2,i,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,0);
Led(2,i,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,i);
Led(2,i,i,i);
if (i == 255) x = -1;
delay(wait);
}
}
}
void Anim7(int wait, int durata)
{
for(int a = 0; a <= durata; a++)
{
Led(1,0,0,0);
Led(2,0,0,0);
Led(3,0,0,0);
Led(4,0,0,0);
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,0);
Led(2,i,0,0);
Led(3,i,0,0);
Led(4,i,0,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,i,0);
Led(2,0,i,0);
Led(3,0,i,0);
Led(4,0,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,0,0,i);
Led(2,0,0,i);
Led(3,0,0,i);
Led(4,0,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,0,i);
Led(2,i,0,i);
Led(3,255,0,i);
Led(4,255,0,i);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,0);
Led(2,i,i,0);
Led(3,i,i,0);
Led(4,i,i,0);
if (i == 255) x = -1;
delay(wait);
}
}
for(int d = 0; d < durata; d++)
{
int x = 1;
for (int i = 0; i > -1; i = i + x)
{
Led(1,i,i,i);
Led(2,i,i,i);
Led(3,i,i,i);
Led(4,i,i,i);
if (i == 255) x = -1;
delay(wait);
}
}
}
}
void Anim8(float wait, int rep)
{
for(int a = 0; a <= rep; a++)
{
Led(1,0,0,0);
Led(2,0,0,0);
Led(3,0,0,0);
Led(4,0,0,0);
for(int c = 0; c < 255; c++)
{
Led(1,c,0,0);
Led(2,c,0,0);
Led(3,c,0,0);
Led(4,c,0,0);
delay(wait);
}
for(int c = 255; c >= 0; c--)
{
Led(1,c,0,0);
Led(2,c,0,0);
Led(3,c,0,0);
Led(4,c,0,0);
delay(wait);
}
for(int c = 0; c < 255; c++)
{
Led(1,0,c,0);
Led(2,0,c,0);
Led(3,0,c,0);
Led(4,0,c,0);
delay(wait);
}
for(int c = 255; c >= 0; c--)
{
Led(1,0,c,0);
Led(2,0,c,0);
Led(3,0,c,0);
Led(4,0,c,0);
delay(wait);
};
for(int c = 0; c < 255; c++)
{
Led(1,0,0,c);
Led(2,0,0,c);
Led(3,0,0,c);
Led(4,0,0,c);
delay(wait);
}
for(int c = 255; c >= 0; c--)
{
Led(1,0,0,c);
Led(2,0,0,c);
Led(3,0,0,c);
Led(4,0,0,c);
delay(wait);
}
}
}
void Anim9(int wait, int rep)
{
for(int a = 0; a <= rep; a++)
{
for(int r = 0; r < 256; r++)
{
Led(1, r, 0, 0);
int r2 = 255 - r;
Led(4, r2, 0, 0);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(2, r, 0, 0);
int r2 = 255 - r;
Led(1, r2, 0, 0);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(3, r, 0, 0);
int r2 = 255 - r;
Led(2, r2, 0, 0);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(4, r, 0, 0);
int r2 = 255 - r;
Led(3, r2, 0, 0);
delay(wait);
}
}
for(int a = 0; a <= rep; a++)
{
for(int r = 0; r < 256; r++)
{
Led(1, 0, r, 0);
int r2 = 255 - r;
Led(4, 0, r2, 0);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(2, 0, r, 0);
int r2 = 255 - r;
Led(1, 0, r2, 0);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(3, 0, r, 0);
int r2 = 255 - r;
Led(2, 0, r2, 0);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(4, 0, r, 0);
int r2 = 255 - r;
Led(3, 0, r2, 0);
delay(wait);
}
}
for(int a = 0; a <= rep; a++)
{
for(int r = 0; r < 256; r++)
{
Led(1, 0, 0, r);
int r2 = 255 - r;
Led(4, 0, 0, r2);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(2, 0, 0, r);
int r2 = 255 - r;
Led(1, 0, 0, r2);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(3, 0, 0, r);
int r2 = 255 - r;
Led(2, 0, 0, r2);
delay(wait);
}
for(int r = 0; r < 256; r++)
{
Led(4, 0, 0, r);
int r2 = 255 - r;
Led(3, 0, 0, r2);
delay(wait);
}
}
}
void Anim10(float wait, int rep, int step)
{
for(int r = 0; r < rep; r++)
{
for(int r = 0; r < 256; r = r + step)
{
Led(3, r, 0, 0);
Led(1, 255 - r, 0, 0);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(4, r, 0, 0);
Led(2, 255 - r, 0, 0);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(1, r, 0, 0);
Led(3, 255 - r, 0, 0);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(2, r, 0, 0);
Led(4, 255 - r, 0, 0);
delay(wait);
}
}
for(int r = 0; r < rep; r++)
{
for(int r = 0; r < 256; r = r + step)
{
Led(3, 0, r, 0);
Led(1, 0, 255 - r, 0);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(4, 0, r, 0);
Led(2, 0, 255 - r, 0);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(1, 0, r, 0);
Led(3, 0, 255 - r, 0);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(2, 0, r, 0);
Led(4, 0, 255 - r, 0);
delay(wait);
}
}
for(int r = 0; r < rep; r++)
{
for(int r = 0; r < 256; r = r + step)
{
Led(3, 0, 0, r);
Led(1, 0, 0, 255 - r);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(4, 0, 0, r);
Led(2, 0, 0, 255 - r);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(1, 0, 0, r);
Led(3, 0, 0, 255 - r);
delay(wait);
}
for(int r = 0; r < 256; r = r + step)
{
Led(2, 0, 0, r);
Led(4, 0, 0, 255 - r);
delay(wait);
}
}
}
void Anim11(int wait, int rep, int step)
{
int Pr1,Pg1,Pb1,Pr2,Pg2,Pb2,Pr3,Pg3,Pb3,Pr4,Pg4,Pb4,r,g,b;
Pr1 = Pr2 = Pr3 = Pr4 = 125;
Pg1 = Pg2 = Pg3 = Pg4 = 125;
Pb1 = Pb2 = Pb3 = Pb4 = 125;
for(int d = 1; d < rep; d++)
r = rand() % 256;
g = rand() % 256;
b = rand() % 256;
if (Pr1 < r)
{
for(int i = Pr1;i < r; i = i + step)
{
Led(1, i, Pg1, Pb1);
delay(wait);
Pr1 = r;
}
}
else if (Pr1 > r)
{
for(int i = Pr1;i > r; i = i - step)
{
Led(1, i, Pg1, Pb1);
delay(wait);
Pr1 = r;
}
}
if (Pg1 < g)
{
for(int i = Pg1;i < g; i = i + step)
{
Led(1, r, i, Pb1);
delay(wait);
Pg1 = g;
}
}
else if (Pg1 > g)
{
for(int i = Pg1;i > g; i = i - step)
{
Led(1, r, i, Pb1);
delay(wait);
Pg1 = g;
}
}
if (Pb1 < b)
{
for(int i = Pb1;i < b; i = i + step)
{
Led(1, r, g, i);
delay(wait);
Pb1 = b;
}
}
else if (Pb1 > b)
{
for(int i = Pb1;i > b; i = i - step)
{
Led(1, r, g, i);
delay(wait);
Pb1 = b;
}
}
r = rand() % 256;
g = rand() % 256;
b = rand() % 256;
if (Pr2 < r)
{
for(int i = Pr2;i < r; i = i + step)
{
Led(2, i, Pg2, Pb2);
delay(wait);
Pr2 = r;
}
}
else if (Pr2 > r)
{
for(int i = Pr2;i > r; i = i - step)
{
Led(2, i, Pg2, Pb2);
delay(wait);
Pr2 = r;
}
}
if (Pg2 < g)
{
for(int i = Pg2;i < g; i = i + step)
{
Led(2, r, i, Pb2);
delay(wait);
Pg2 = g;
}
}
else if (Pg2 > g)
{
for(int i = Pg2;i > g; i = i - step)
{
Led(2, r, i, Pb2);
delay(wait);
Pg2 = g;
}
}
if (Pb2 < b)
{
for(int i = Pb2;i < b; i = i + step)
{
Led(2, r, g, i);
delay(wait);
Pb2 = b;
}
}
else if (Pb2 > b)
{
for(int i = Pb2;i > b; i = i - step)
{
Led(2, r, g, i);
delay(wait);
Pb2 = b;
}
}
r = rand() % 256;
g = rand() % 256;
b = rand() % 256;
if (Pr3 < r)
{
for(int i = Pr3;i < r; i = i + step)
{
Led(3, i, Pg3, Pb3);
delay(wait);
Pr3 = r;
}
}
else if (Pr3 > r)
{
for(int i = Pr3;i > r; i = i - step)
{
Led(3, i, Pg3, Pb3);
delay(wait);
Pr3 = r;
}
}
if (Pg3 < g)
{
for(int i = Pg3;i < g; i = i + step)
{
Led(3, r, i, Pb3);
delay(wait);
Pg3 = g;
}
}
else if (Pg3 > g)
{
for(int i = Pg3;i > g; i = i - step)
{
Led(3, r, i, Pb3);
delay(wait);
Pg3 = g;
}
}
if (Pb3 < b)
{
for(int i = Pb3;i < b; i = i + step)
{
Led(3, r, g, i);
delay(wait);
Pb3 = b;
}
}
else if (Pb3 > b)
{
for(int i = Pb3;i > b; i = i - step)
{
Led(3, r, g, i);
delay(wait);
Pb3 = b;
}
}
r = rand() % 256;
g = rand() % 256;
b = rand() % 256;
if (Pr4 < r)
{
for(int i = Pr4;i < r; i = i + step)
{
Led(14, i, Pg4, Pb4);
delay(wait);
Pr4 = r;
}
}
else if (Pr4 > r)
{
for(int i = Pr4;i > r; i = i - step)
{
Led(4, i, Pg4, Pb4);
delay(wait);
Pr4 = r;
}
}
if (Pg4 < g)
{
for(int i = Pg4;i < g; i = i + step)
{
Led(4, r, i, Pb4);
delay(wait);
Pg4 = g;
}
}
else if (Pg4 > g)
{
for(int i = Pg4;i > g; i = i - step)
{
Led(4, r, i, Pb4);
delay(wait);
Pg4 = g;
}
}
if (Pb4 < b)
{
for(int i = Pb4;i < b; i = i + step)
{
Led(4, r, g, i);
delay(wait);
Pb4 = b;
}
}
else if (Pb4 > b)
{
for(int i = Pb4;i > b; i = i - step)
{
Led(4, r, g, i);
delay(wait);
Pb4 = b;
}
}
}
void Anim12(int wait, int rep, int step)
{
int Pr1,Pg1,Pb1,Pr2,Pg2,Pb2,Pr3,Pg3,Pb3,Pr4,Pg4,Pb4,r,g,b;
for(int d = 1; d < rep; d++)
{
r = rand() % 256;
g = rand() % 256;
b = rand() % 256;
if (Pr1 <= r)
{
for(int i = Pr1;i < r; i = i + step)
{
Led(1, i, Pg1, Pb1);
Led(2, i, Pg1, Pb1);
Led(3, i, Pg1, Pb1);
Led(4, i, Pg1, Pb1);
delay(wait);
Pr1 = r;
}
}
else if (Pr1 > r)
{
for(int i = Pr1;i > r; i = i - step)
{
Led(1, i, Pg1, Pb1);
Led(2, i, Pg1, Pb1);
Led(3, i, Pg1, Pb1);
Led(4, i, Pg1, Pb1);
delay(wait);
Pr1 = r;
}
}
delay(500);
if (Pg1 <= g)
{
for(int i = Pg1;i < g; i = i + step)
{
Led(1, r, i, Pb1);
Led(2, r, i, Pb1);
Led(3, r, i, Pb1);
Led(4, r, i, Pb1);
delay(wait);
Pg1 = g;
}
}
else if (Pg1 > g)
{
for(int i = Pg1;i > g; i = i - step)
{
Led(1, r, i, Pb1);
Led(2, r, i, Pb1);
Led(3, r, i, Pb1);
Led(4, r, i, Pb1);
delay(wait);
Pg1 = g;
}
}
delay(500);
if (Pb1 <= b)
{
for(int i = Pb1;i < b; i = i + step)
{
Led(1, r, g, i);
Led(2, r, g, i);
Led(3, r, g, i);
Led(4, r, g, i);
delay(wait);
Pb1 = b;
}
}
else if (Pb1 > b)
{
for(int i = Pb1;i > b; i = i - step)
{
Led(1, r, g, i);
Led(2, r, g, i);
Led(3, r, g, i);
Led(4, r, g, i);
delay(wait);
Pb1 = b;
}
}
delay(500);
}
}
void Led(int Number, int Red, int Green, int Blue)
{
if(Number == 1)
{
analogWrite(pinR1, Red);
analogWrite(pinG1, Green);
analogWrite(pinB1, Blue);
}
if(Number == 2)
{
analogWrite(pinR2, Red);
analogWrite(pinG2, Green);
analogWrite(pinB2, Blue);
}
if(Number == 3)
{
analogWrite(pinR3, Red);
analogWrite(pinG3, Green);
analogWrite(pinB3, Blue);
}
if(Number == 4)
{
analogWrite(pinR4, Red);
analogWrite(pinG4, Green);
analogWrite(pinB4, Blue);
}
}
Restul componentelor au ramas cele de dinainte, doar microprocesorul, codul si legaturile mosfetilor la Arduino Mega s-au schimbat.
Un mic video cu rezultatele obtinute:
Spor la bricolat, si sarbatori fericite !
Craciun Fericit !
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
Who is online
Users browsing this forum: No registered users and 40 guests