22-09-2015, 20:11
podrugie nie pisz tak
do jak zrobisz kod na 20 kartek a4 i będziesz chciał zmienić jeden pin to 2 godziny będziesz to robił masz tu poprawiony kod podmieni miny na swoje i sprawdź u mnie dział ale nie wiem czy tak ci to się wyobrażało
Kod:
digitalWrite(9, HIGH); //Włączenie diody YELLOW
delay(yellow_time);
guzik_off();
digitalWrite(8, LOW); //Wyłączenie diody RED
digitalWrite(9, LOW); //Wyłączenie diody YELLOW
digitalWrite(10, HIGH); //Włączenie diody GREEN
delay(green_time);
guzik_off();
digitalWrite(10, LOW); //Wyłączenie diody GREEN
digitalWrite(9, HIGH); //Włączenie diody YELLOW
Kod:
#define numberOfLEDs 3
long nextFlash[3];
int ledPin[] = { 42, 43, 44}; // LED pins to use.
int ledState[3];
int guzik=1;
const int button = 48;
int red_time = 4000; //4000
int yellow_time = 2000; //2000
int green_time = 4000; //4000
void setup() {
pinMode(42, OUTPUT); //Konfiguracja pinu 8 jako wyjście RED
pinMode(43, OUTPUT); //Konfiguracja pinu 9 jako wyjście YELLOW
pinMode(44, OUTPUT); //Konfiguracja pinu 10 jako wyjście GREEN
pinMode(48, INPUT); //Konfiguracja pinu 11 jako guzik
pinMode(48, OUTPUT);
}
void loop()
{
guzik = digitalRead(button); // read input value
if (guzik == LOW)
{
traffic();
}
else losowe();
}
void guzik_on()
{
guzik = digitalRead(button); // read input value
if (guzik == LOW)
{
traffic();
}
}
void guzik_off()
{
guzik = digitalRead(button); // read input value
if (guzik == HIGH)
{
losowe();
}
}
void traffic() {
digitalWrite(ledPin[0], HIGH); //Włączenie diody RED
delay(red_time);
guzik_off();
digitalWrite(ledPin[1], HIGH); //Włączenie diody YELLOW
delay(yellow_time);
guzik_off();
digitalWrite(ledPin[0], LOW); //Wyłączenie diody RED
digitalWrite(ledPin[1], LOW); //Wyłączenie diody YELLOW
digitalWrite(ledPin[2], HIGH); //Włączenie diody GREEN
delay(green_time);
guzik_off();
digitalWrite(ledPin[2], LOW); //Wyłączenie diody GREEN
digitalWrite(ledPin[1], HIGH); //Włączenie diody YELLOW
delay(2000);
guzik_off();
digitalWrite(ledPin[1], LOW); //Wyłączenie diody YELLOW
}
void losowe()
{
for (int i = 0; i < numberOfLEDs; i++) {
pinMode(ledPin[i], OUTPUT);
ledState[i] = LOW;
digitalWrite(ledPin[i], LOW); // all LEDs off
nextFlash[i] = millis() + random(20, 300);
}
while (true) {
for (int i = 0; i < numberOfLEDs; i++) {
if (millis() > nextFlash[i]) {
if (ledState[i] == LOW) ledState[i] = HIGH; else ledState[i] = LOW;
digitalWrite(ledPin[i], ledState[i]);
nextFlash[i] = millis() + random(20, 300) ; // next toggle random time
guzik_on();
}
}
}
}