Мой Светофор
- Войдите на сайт для отправки комментариев
Ср, 27/11/2013 - 13:32
Вот мой светофор: видео
индикатор использовал : kem(gnd)3621ag с общим катодом
arduino pro mini с ebay
скетч:
const int numer[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//цифры 0-9 const int microsec=30; void setup() { DDRD = B11111111;//порт D на выход DDRB = B00000011; //порт B на выход pinMode(A1, OUTPUT);//красный pinMode(A2, OUTPUT);//желтый pinMode(A3, OUTPUT);//зеленый } void loop() { int x1=1; int x2=5; int x3=x1*10+x2; int pin=15; //красный A1 myFunc(x1,x2,x3,pin); int y1=2; int y2=0; int y3=y1*10+y2; pin=17; //зеленый A1 myFunc(y1,y2,y3,pin); } void myFunc(int z1,int z2,int z3,int pin){ for (int i=z3; i >= 0; i--){ digitalWrite(pin, HIGH); for (int x=0; x <= 20000; x++){ //задержка PORTB = B00000001; PORTD = numer[z1]; delayMicroseconds(microsec); PORTB = B00000010; PORTD = numer[z2]; delayMicroseconds(microsec); if (z1<1 && z2<6 && x==10000) { digitalWrite(pin, LOW); } } z2--; if (z2<0) {z2=9; z1--;} } PORTB = B00000011;//выключаем индикацию digitalWrite(A2, HIGH);//включаем желтый delay(3000); digitalWrite(A2, LOW);//выключаем желтый }
Начало есть :) Только явно батарейку будет кушать нещадно. Это у же не первый такой проект, поищите на форуме, может что интересного для себя найдете в других вариантах реализации. Я бы еще подуал на счет отражателей в фонари, возможно было бы лучше видно, а так достаточно точечный источник заметен. Но это на вкус и цвет..
Удачного продолжения и, главное, завершения проекта!
Спасибо, будем искать