żarząca dioda LED - Dawidek1990 - 09-06-2016
Witam!
Mam podłączoną 2 diody led do pinu 0 i 1 wraz z masą i ciągle się żarzą. W programie nie mam definicji do tych pinów. Gdy już mam przepisaną konkretną funkcję to one wtedy działają. Czy to może być uszkodzenie mikrokontrolera?
RE: żarząca dioda LED - adix - 09-06-2016
Narysuj schemat i zamieść kod programu.
(09-06-2016, 22:45)Dawidek1990 napisał(a): Czy to może być uszkodzenie mikrokontrolera? Prawdo podobnie nie masz zdefiniowanego stanu początkowego.
RE: żarząca dioda LED - JasQ - 10-06-2016
0 i 1 to złącze uart , tam raczej nic nie podłączaj , bo będą właśnie tak się zachowywały .
RE: żarząca dioda LED - Dawidek1990 - 10-06-2016
Problem z diodami miałem przy programie ,,światła drogowe", na początku miałem ok a później pin 0 nie reagował tak jak powinien, Zmieniłem piny. Nie działa jak należy
RE: żarząca dioda LED - adix - 10-06-2016
Ludzie błagam już któryś raz punkt "11. Zamieszczaj pełne listingi bądź znaczące fragmenty kodu, które pomogą w lokalizacji problemu."
Ten temat to idealny przykład gdzie bez kodu nic nie pomożemy.
Naprawdę nie stosowanie się do regulaminu musi zostać karane bo innej możliwości nie widzę .
RE: żarząca dioda LED - Dawidek1990 - 11-06-2016
Kod: // definicja pinów, do których podłączono przyciski i diody LED:
#define westButton 7
#define eastButton 13
#define westRed 2
#define westYellow 1
#define westGreen 0
#define eastRed 12
#define eastYellow 11
#define eastGreen 10
#define yellowBlinkTime 500 // żółte światło zapala na pół sekundy
boolean trafficWest = true; // west = true, east = false
int flowTime = 10000; // czas puszczania ruchu pojazdów w jedną stronę
int changeDelay = 2000; // czas pomiędzy zmianą koloru świateł
void setup()
{
//ustawia cyfrowe piny wejścia - wyjścia
pinMode (westButton, INPUT);
pinMode (eastButton, INPUT);
pinMode (westRed, OUTPUT);
pinMode (westYellow, OUTPUT);
pinMode (westGreen, OUTPUT);
pinMode (eastRed, OUTPUT);
pinMode (eastYellow, OUTPUT);
pinMode (eastGreen, OUTPUT);
// ustawia początkowy stan świateł (zielone światło od strony zachodniej)
digitalWrite (westRed, LOW);
digitalWrite (westYellow, LOW);
digitalWrite (eastGreen, HIGH);
digitalWrite (eastRed, HIGH);
digitalWrite (eastYellow, LOW);
digitalWrite (eastGreen, LOW);
}
void loop ()
{
if ( digitalRead(westButton) == HIGH) // żądanie puszczania ruchem
// z zachodu na wschód
{
if (trafficWest != true)
// ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku (na wschód)
{
trafficWest = true; // zmiana flagi kierunku ruchu na z zachodu na wschód
delay (flowTime); // czas na opuszcznie mostu przez aktualne przejażdżające pojazdy
digitalWrite (eastGreen, LOW); //zmiana świateł od strony wschodniej (z zielonego na żółte i czerwone)
digitalWrite (eastYellow, HIGH);
delay (changeDelay);
digitalWrite (eastYellow, LOW);
digitalWrite (eastRed, HIGH);
delay (changeDelay);
for (int a = 0; a < 5; a++ ) // migające żółte światło
{
digitalWrite(westYellow, LOW);
delay( yellowBlinkTime);
digitalWrite (westYellow, HIGH);
delay(yellowBlinkTime);
}
digitalWrite(westYellow, LOW);
digitalWrite(westRed, LOW); // zmiana światła od strony zachodniej na zielone
digitalWrite (westGreen, HIGH);
}
}
if (digitalRead(eastButton) == HIGH) //żądanie puszczanie ruchu ze wszchodu na zachód
{
if (trafficWest == true) //ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku na zachód
{
trafficWest = false; //zmiana flagi kierunku na ze wschodu na zachód
delay (flowTime); //czas na opuszczenie mostu przez aktulane przejażdżając pojazdy
digitalWrite (westGreen, LOW);
// zmiana światła od strony zachodniej z zielonego na żółte i czerwone
digitalWrite (westYellow, HIGH);
delay (changeDelay);
digitalWrite (westYellow, LOW);
digitalWrite (westRed, HIGH);
delay (changeDelay);
for (int a = 0; a < 5; a++ ) // migające żółte światło
{
digitalWrite(eastYellow, LOW);
delay( yellowBlinkTime);
digitalWrite (eastYellow, HIGH);
delay(yellowBlinkTime);
}
digitalWrite(eastYellow, LOW);
digitalWrite(eastRed, LOW); // zmiana światła od strony wschodniej z czerwonego na zielone
digitalWrite(eastGreen, HIGH);
}
}
}
RE: żarząca dioda LED - adix - 11-06-2016
wybacz moje pytanie. Po jakiego ty grzyba powielasz wątek pisz w tym samym poście jeśli coś nadal nie działa.
Moim zdaniem temat do kosza.
Kod: // definicja pinów, do których podłączono przyciski i diody LED:
#define westButton 7
#define eastButton 13
#define westRed 2
#define westYellow 4
#define westGreen 3
#define eastRed 12
#define eastYellow 11
#define eastGreen 10
#define yellowBlinkTime 500 // żółte światło zapala na pół sekundy
boolean trafficWest = true; // west = true, east = false
int flowTime = 10000; // czas puszczania ruchu pojazdów w jedną stronę
int changeDelay = 2000; // czas pomiędzy zmianą koloru świateł
void setup()
{
//ustawia cyfrowe piny wejścia - wyjścia
pinMode (westButton, INPUT);
pinMode (eastButton, INPUT);
pinMode (westRed, OUTPUT);
pinMode (westYellow, OUTPUT);
pinMode (westGreen, OUTPUT);
pinMode (eastRed, OUTPUT);
pinMode (eastYellow, OUTPUT);
pinMode (eastGreen, OUTPUT);
// ustawia początkowy stan świateł (zielone światło od strony zachodniej)
digitalWrite (westRed, LOW);
digitalWrite (westYellow, LOW);
digitalWrite (eastGreen, HIGH);
digitalWrite (eastRed, HIGH);
digitalWrite (eastYellow, LOW);
digitalWrite (eastGreen, LOW);
}
void loop ()
{
if ( digitalRead(westButton) == HIGH) // żądanie puszczania ruchem
// z zachodu na wschód
{
if (trafficWest != true)
// ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku (na wschód)
{
trafficWest = true; // zmiana flagi kierunku ruchu na z zachodu na wschód
delay (flowTime); // czas na opuszcznie mostu przez aktualne przejażdżające pojazdy
digitalWrite (eastGreen, LOW); //zmiana świateł od strony wschodniej (z zielonego na żółte i czerwone)
digitalWrite (eastYellow, HIGH);
delay (changeDelay);
digitalWrite (eastYellow, LOW);
digitalWrite (eastRed, HIGH);
delay (changeDelay);
for (int a = 0; a < 5; a++ ) // migające żółte światło
{
digitalWrite(westYellow, LOW);
delay( yellowBlinkTime);
digitalWrite (westYellow, HIGH);
delay(yellowBlinkTime);
}
digitalWrite(westYellow, LOW);
digitalWrite(westRed, LOW); // zmiana światła od strony zachodniej na zielone
digitalWrite (westGreen, HIGH);
}
}
if (digitalRead(eastButton) == HIGH) //żądanie puszczanie ruchu ze wszchodu na zachód
{
if (trafficWest == true) //ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku na zachód
{
trafficWest = false; //zmiana flagi kierunku na ze wschodu na zachód
delay (flowTime); //czas na opuszczenie mostu przez aktulane przejażdżając pojazdy
digitalWrite (westGreen, LOW);
// zmiana światła od strony zachodniej z zielonego na żółte i czerwone
digitalWrite (westYellow, HIGH);
delay (changeDelay);
digitalWrite (westYellow, LOW);
digitalWrite (westRed, HIGH);
delay (changeDelay);
for (int a = 0; a < 5; a++ ) // migające żółte światło
{
digitalWrite(eastYellow, LOW);
delay( yellowBlinkTime);
digitalWrite (eastYellow, HIGH);
delay(yellowBlinkTime);
}
digitalWrite(eastYellow, LOW);
digitalWrite(eastRed, LOW); // zmiana światła od strony wschodniej z czerwonego na zielone
digitalWrite(eastGreen, HIGH);
}
}
}
0/1 nie możesz używać po pierwsze po drugie jaki kolor lcd ci swieci
RE: żarząca dioda LED - Dawidek1990 - 11-06-2016
westGreen nie działa na pinie 3-cim. Zmieniłem na 5, ta sama sytuacja. Przekładałem diody wraz z rezystorami i kablem, nic się nie zmieniło.
RE: żarząca dioda LED - adix - 11-06-2016
Narysuj schemat połączenie może tu popełniłeś jakiś błąd z programu wynika ze działa poprawnie.
RE: żarząca dioda LED - Dawidek1990 - 12-06-2016
fotka z ,,Arduino 65 praktycznych projektów" John'a Boxell'a. Uprościłem dziś schemat bez kondensatorów i rezystorów na track switach. jest podłączony pin digital i GND do przycisków. Nic się nie zmieniło.
|