Skocz do zawartości

szon

Użytkownicy
  • Zawartość

    11
  • Rejestracja

  • Ostatnio

Reputacja

5 Neutralna

O szon

  • Ranga
    2/10
  1. @Gieneq Dzięki! Oba sposoby działają. 4.4 z negacją #define LED_R 10 #define LED_G 11 #define LED_B 12 #define LED_13 13 #define KONTAKTRON 0 #define PIR 2 void setup() { Serial.begin(9600); //Ustawienie prędkości transmisji pinMode(LED_R, OUTPUT); //Poszczególne piny sterujące diodą jako wyjścia pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(7, OUTPUT); pinMode(KONTAKTRON, INPUT_PULLUP); //Kontaktron jako wejście pinMode(PIR, INPUT); //PIR jako wejście digitalWrite(LED_R, LOW); digitalWrite(LED_B, LOW); attachInterrupt(digitalPinToInterrupt(PIR), alarm, RISING); // Przerwanie reagujące na zbocze rosnące } void loop() { } void alarm() { //Przerwanie digitalWrite(LED_G, !digitalRead(LED_G)); // negacja }
  2. Mam problem z zadaniem 4.4 zrobiłem 'ręcznie' ale nie mam pomysłu jak to zautomatyzować #define LED_R 10 #define LED_G 11 #define LED_B 12 #define LED_13 13 #define KONTAKTRON 0 #define PIR 2 volatile int ileRazy = 0; void setup() { pinMode(LED_R, OUTPUT); //Poszczególne piny sterujące diodą jako wyjścia pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(KONTAKTRON, INPUT_PULLUP); //Kontaktron jako wejście pinMode(PIR, INPUT); //PIR jako wejście digitalWrite(LED_R, LOW); digitalWrite(LED_G, HIGH); digitalWrite(LED_B, LOW); attachInterrupt(digitalPinToInterrupt(PIR), alarm, RISING); // Przerwanie reagujące na zbocze rosnące } void loop() { if (ileRazy == 0) { digitalWrite(LED_R, LOW); digitalWrite(LED_G, HIGH); digitalWrite(LED_B, LOW); } else if (ileRazy == 1) { digitalWrite(LED_R, LOW); digitalWrite(LED_G, LOW); digitalWrite(LED_B, LOW); } else if (ileRazy == 2) { digitalWrite(LED_R, LOW); digitalWrite(LED_G, HIGH); digitalWrite(LED_B, LOW); } else if (ileRazy == 3) { digitalWrite(LED_R, LOW); digitalWrite(LED_G, LOW); digitalWrite(LED_B, LOW); } else if (ileRazy == 4) { digitalWrite(LED_R, LOW); digitalWrite(LED_G, HIGH); digitalWrite(LED_B, LOW); } else if (ileRazy == 5) { digitalWrite(LED_R, LOW); digitalWrite(LED_G, LOW); digitalWrite(LED_B, LOW); } } void alarm() { //Przerwanie ileRazy++; //Wykryto kolejny alarm } // Działające wersje pozostałych zadań 4.1 #define LED_R 10 #define LED_G 11 #define LED_B 12 #define KONTAKTRON 0 void setup() { pinMode(LED_R, OUTPUT); //Poszczególne piny sterujące diodą jako wyjścia pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(KONTAKTRON, INPUT_PULLUP); //Kontaktron jako wejście pinMode(A5, OUTPUT); //Konfiguracja A5 jako wyjście digitalWrite(LED_R, LOW); //Dioda wyłączona digitalWrite(LED_G, LOW); digitalWrite(LED_B, LOW); } void loop() { if (digitalRead(KONTAKTRON) == LOW) { //Jeśli czujnik zwarty digitalWrite(LED_R, LOW); //Stan OK - dioda zielona digitalWrite(LED_G, HIGH); } else { digitalWrite(LED_R, HIGH); //Stan ALARM - dioda czerwona digitalWrite(LED_G, LOW); tone(A5, 3500); } } 4.2 #define LED_R 10 #define LED_G 11 #define LED_B 12 #define KONTAKTRON 0 #define PIR 2 void setup() { pinMode(LED_R, OUTPUT); //Poszczególne piny sterujące diodą jako wyjścia pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(KONTAKTRON, INPUT_PULLUP); //Kontaktron jako wejście pinMode(PIR, INPUT); //PIR jako wejście digitalWrite(LED_R, LOW); //Dioda wyłączona digitalWrite(LED_G, LOW); digitalWrite(LED_B, LOW); pinMode(A5, OUTPUT); //Konfiguracja A5 jako wyjście } void loop() { if (digitalRead(PIR) == LOW) { //Jeśli wykryto ruch digitalWrite(LED_R, LOW); //Stan OK - dioda zielona digitalWrite(LED_G, HIGH); noTone(A5); } else { digitalWrite(LED_R, HIGH); //Stan ALARM - dioda czerwona digitalWrite(LED_G, LOW); tone(A5, 4300); //Wygeneruj sygnał o częstotliwości 4300Hz na pinie A5 delay(150); tone(A5, 3500); //Wygeneruj sygnał o częstotliwości 3500Hz na pinie A5 delay(150); } } 4.3 #define LED_R 10 #define LED_G 11 #define LED_B 12 #define LED_SYG 13 #define KONTAKTRON 0 #define PIR 2 void setup() { pinMode(LED_R, OUTPUT); //Poszczególne piny sterujące diodą jako wyjścia pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(LED_SYG, OUTPUT); pinMode(KONTAKTRON, INPUT_PULLUP); //Kontaktron jako wejście pinMode(PIR, INPUT); //PIR jako wejście digitalWrite(LED_R, LOW); digitalWrite(LED_G, HIGH); digitalWrite(LED_B, LOW); attachInterrupt(digitalPinToInterrupt(PIR), alarm, FALLING); // wywołanie, gdy następuje zmiana wartości ze stanu wysokiego na niski } void loop() { } void alarm() { digitalWrite(LED_R, HIGH); //Stan ALARM - dioda czerwona digitalWrite(LED_G, LOW); }
  3. @Gieneq Dzięki, poprawiłem. Teraz działa! ale zastanawia mnie punkt 1 2. faktycznie zapomniałem w ostatniej wersji układu, dlatego mniejszy A. 3. Tu mój błąd od początku 105 zamiast 103 używałem 4. Wróciłem do 10k z 1. mam problem, w wersji, która teraz działa mam z 3 nóżki ne555 przez rezystor 330 na anodę LEDa, a Katodę na GND. Nie tak jak na schemacie ale układ działa i jeszcze z ciekawostek bo sprawdzałem specjalnie wszystkie elementy. W jednej 104 zamiast 100nF jest 50nF, już wymieniona na nową.
  4. Układ zbudowany kolejny raz. Dla czytelności inne połączenia. @Gieneq Teraz z nowymi bateriami i 'starymi elementami' (TSOP i IR) wychodzi 7mA / Dalej nie działa
  5. @Gieneq @Treker Zgłupiałem... Wymieniony odbiornik IR, dioda IR i ne555. Dalej nie działa, nie pomaga wpięcie diody przez kabelki i dotknięcie odbiornika. Zasilanie 6,3V
  6. @Gieneq Składałem 4 razy i zawsze ten sam efekt to zakładam że dobrze połączyłem. 1. i 2. Sprawdzę w domu 3. Nie mam jak sprawdzić częstotliwość 4. Kable i płytkę stykową sprawdziłem miernikiem Zamówiłem nowy TSOP, diodę IR i ne555. Jak przyjdzie będę podmieniał pojedynczo.
  7. @Gieneq ten kabelek jest podłączony do +, dołączam zdjęcie: @Treker zbudowałem układ 4 raz i dalej to samo, może teraz trochę czytelniejsze do zdjęć. Na próbę R2 1,66k zamieniłem na 2k, ale nic to nie zmieniło. R6 na schemacie jest opisane jako 10k, a na zdjęciu z kroku 9 jest rezystor 1k. Ale niezależnie czy użyje 1k czy 10k dalej układ nie działa.
  8. Mam problem z czujnikiem przeszkód. Nic się nie dzieje po złożeniu układu (składałem go 3 razy) Odbiornik działa, dioda mruga jak celuje w niego pilotem. Dioda IR na aparacie świeci na fioletowo. NE555 przy innych układach (z serwem i mruganiem dwoma diodami) też działa.
×
×
  • Utwórz nowe...