Arduino és una placa de circuit imprès simple basada en microcontrolador de codi obert provinent de la plataforma de codi obert Wiring amb l'objectiu de fer més simple i accessible el disseny de circuits electrònics amb microcontroladors.
El maquinari consisteix en dissenys simples de maquinari lliure amb processadors Atmel AVR en una placa amb pins E/S. L'entorn de desenvolupament implementa el llenguatge Processing de Wiring, molt semblant a C++. Arduino es pot utilitzar per desenvolupar objectes interactius autònoms o pot ser connectat a programari de l'ordinador (p. ex. Macromedia Flash, Processing, Max/MSP, Pure Data). Les plaques es poden muntar a mà o adquirir-se i els IDE de font oberta es poden descarregar de franc.
Projectes
Comptador
Per a fer aquest comptador utlitzem un Display BCD i un xip cd4511be
Si tenim en compte que el xip decodificador té aquestes entrades:
i el display aquestes:
Les connexions quedaran:
Arduino
|
cd4511be
|
2
|
A
|
3
|
B
|
4
|
C
|
5
|
D
|
5v
|
Vdd, LT, BL
|
GND
|
VSS, LE
|
Les connexions del xip 4511 aniràn a les lletres segons l'esquema.
Primera versió del programa:
void setup()
{
for (int i=2;i<6;i++){
pinMode(i,OUTPUT);
}
}
void loop()
{
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,0);
digitalWrite(3,1);
digitalWrite(4,0);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,0);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,0);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
delay(1000);
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
delay(1000);
}
Solució amb un for:
int n=0;
byte BCD[16][4]={{0,0,0,0},{1,0,0,0},{0,1,0,0},{1,1,0,0},
{0,0,1,0},{1,0,1,0},{0,1,1,0},{1,1,1,0},{0,0,0,1},{1,0,0,1},
{0,1,0,1},{1,1,0,1},{0,0,1,1},{1,0,1,1},{0,1,1,1},{1,1,1,1}};
void setup()
{
for (int i=2;i<6;i++){
pinMode(i,OUTPUT);
}
}
void loop()
{
for (int i=0;i<4;i++){
digitalWrite(i+2,BCD[n][i]);
}
delay(100);
if (n!=9) n++; else n=0;
}
Fotos: [1] [2] [3]
Enllaços