Skocz do zawartości

D3binski

Użytkownicy
  • Zawartość

    10
  • Rejestracja

  • Ostatnio

Reputacja

7 Neutralna

O D3binski

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  1. Przyznaje się do błędu, dzis jeszcze raz przestudiowałem obraz z noty katalogowej dotyczący wyprowadzeń i doszedłem do wniosku, że określając wyprowadzenia trzymałem czujnik odwrotna stroną. Arduino przeżyło, kamień z serca Puenta jest taka, że sprawdzając połączenia, nóżki trzeba trzymać skierowane do siebie, a nie na odwrót
  2. @Treker i to jeszcze jak :) dziękuje za rzetelne wytłumaczenie :)
  3. Pomocy, czujnik analogowy z przyzwyczajenia podłączyłem jak tranzystor używany w kursie i podłączyłem zasilanie. Po poprawieniu podłączeń czujnik zaczął się grzać, stwierdziłem, że się przepalił więc się z nim pożegnałem. Czujnik cyfrowy podłączyłem już dobrze, a mimo to pokazywał -127*C, a gdy go dotknąłem, to myślałem, że moje palce zamieniły się w pieczeń i ułyszałem syczenie (chyba czujnik, a nie płytka). Wolę zaczerpnąć opinii profesjonalisty przed kolejnym podłączeniem arudino, czy mogło dojść do uszkodzenia płytki, czy czujnik cyfowy był uszkodzony fabrycznie itd.
  4. Obawiam się, ze nie potrafię zrozumieć części z niebezpośrednim podłączeniem katody do masy „Przy włączeniu wszystkich segmentów cały wyświetlacz może pobrać "z katody" ponad 20 mA, więc nie powinniśmy podłączać jej bezpośrednio do Arduino!” Czy podłączenie masy przez tranzystor do Arduino zmienia cos poza możliwością sterowania? Nie jest to dalej połączenie bezpośrednie? Dlaczego w przykładzie z jednoczesnym wyświetlaniem tych samych znaków nie potrzebowaliśmy tranzystorów? Pozdrawiam :)
  5. @Treker, dziękuję, miło to słyszeć
  6. /* Kurs Arduino II Forbot [5/10] Alarm złożony z czujnika ruchu (PIR), kontaktronu, sygnalizacji świetlnej, dżwiękowej i klawiatury */ // Adafruit NeoPixel - Version: Latest #include <Adafruit_NeoPixel.h> // Keypad - Version: Latest #include <Key.h> #include <Keypad.h> #define kontaktron 12 //czujnik magnetyczny #define buzzer A2 //sygnalizator dzwiekowy #define PIR A1 //czujnik ruchu const byte ROWS = 4; //deklaracja i przypisanie liczby rzedow const byte COLS = 4; //deklaracja i przypisanie liczby kolumn byte rowPins[ROWS] = {7, 6, 5, 4}; //deklaracja i przypisanie pinow rzedow i kolumn byte colPins[COLS] = {8, 9, 10, 11}; char keys[ROWS][COLS] = { //mapowanie klawiatury {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '7', 'C'}, {'*', '0', '#', 'D'} }; Keypad klawiatura = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); //Inicjalizacja klawiatury Adafruit_NeoPixel linijka = Adafruit_NeoPixel(8, A0, NEO_GRB + NEO_KHZ800); //Konfiguracja linijki LED volatile int stanAlarmu = 1; int pinAlarmuPozycja = 1; char pinCyfra1 = '1'; // Ustawienie kodu char pinCyfra2 = '2'; char pinCyfra3 = '3'; char pinCyfra4 = '4'; int ileCzasuMinelo = 0; void setup() { pinMode(kontaktron, INPUT_PULLUP); pinMode(buzzer, OUTPUT); pinMode(PIR, INPUT); linijka.begin(); //Inicjalizacja linijki linijka.show(); } void loop() { char klawisz = 0; //zmienna przetrzymujaca znaki z klawiatury int i = 0; //zmienna pomocnicza do petli for switch (stanAlarmu){ //wykonaj akcje dla danego stanu alarmu case 1: //czuwanie linijka.setPixelColor(0, linijka.Color(0, 15, 0)); //dioda nr 1 swieci na zielono linijka.show(); klawisz = klawiatura.getKey(); if(klawisz == 'A'){ //Czy wlaczyc alarm for(i = 1; i < 8; i++){ linijka.setPixelColor(i, linijka.Color(0, 0, 15)); linijka.show(); delay(680); } for(i = 1; i < 8; i++){ linijka.setPixelColor(i, linijka.Color(15, 0, 0)); linijka.show(); delay(680); } pikpik(); //efekt dźwiękowy wylaczDiody(); stanAlarmu = 2; } break; case 2: //monitorowanie linijka.setPixelColor(7, linijka.Color(15, 0, 0)); //dioda nr 7 swieci na czerwono linijka.show(); delay(50); linijka.setPixelColor(7, linijka.Color(0, 0, 0)); //dioda nr 7 wylaczona linijka.show(); delay(50); if(digitalRead(PIR) == HIGH){ stanAlarmu = 4; //uruchom alarm pikpik(); //efekt dzwiekowy } else if(digitalRead(kontaktron) == HIGH){ ileCzasuMinelo = 0; //wyzeruj czas wpisywania pinu stanAlarmu = 3; //pozwol rozbroic } break; case 3: //rozbrajanie klawisz = klawiatura.getKey(); if (klawisz) { //Czy kolejna podana cyfra jest poprawna? if (pinAlarmuPozycja == 1 && klawisz == pinCyfra1) { //Jesli sprawdzamy 1 pozycje PINu pinAlarmuPozycja++; //Cyfra poprawna, mozna sprawdzic na kolejna tone(buzzer, 4300); //efekt dźwiękowy podczas wpisywania kodu delay(50); noTone(buzzer); } else if (pinAlarmuPozycja == 2 && klawisz == pinCyfra2) { //Jesli sprawdzamy 2 pozycje PINu pinAlarmuPozycja++; //Cyfra poprawna, mozna sprawdzic na kolejna tone(buzzer, 3500); delay(50); noTone(buzzer); } else if (pinAlarmuPozycja == 3 && klawisz == pinCyfra3) { //Jesli sprawdzamy 3 pozycje PINu pinAlarmuPozycja++; //Cyfra poprawna, mozna sprawdzic na kolejna tone(buzzer, 3500); delay(50); noTone(buzzer); } else if (pinAlarmuPozycja == 4 && klawisz == pinCyfra4) { //Jesli sprawdzamy 4 pozycje PINu stanAlarmu = 1; //Wszystkie 4 cyfry kodu sa poprawne tone(buzzer, 4300); delay(50); noTone(buzzer); } else { stanAlarmu = 4; //Blad w kodzie PIN - wlacz alarm pikpik(); } } delay(100); ileCzasuMinelo++; if(ileCzasuMinelo >= 50){ stanAlarmu = 4; pikpik(); } break; case 4: //alarm for(i = 0; i < 8; i++){ linijka.setPixelColor(i, linijka.Color(0, 0, 255)); } linijka.show(); tone(buzzer, 4300); delay(50); for(i = 0; i < 8; i++){ linijka.setPixelColor(i, linijka.Color(255, 0, 0)); } linijka.show(); tone(buzzer, 3500); delay(50); klawisz = klawiatura.getKey(); if(klawisz == 'D'){ for(i = 0; i < 8; i++){ linijka.setPixelColor(i, linijka.Color(0, 0, 0)); } stanAlarmu = 1; noTone(buzzer); } break; } } void wylaczDiody(){ for(int i = 0; i < 8; i++){ linijka.setPixelColor(i, linijka.Color(0, 0, 0)); //dioda nr i wylaczona } linijka.show(); } void pikpik(){ //funkcja dżwiękowa tone(buzzer, 4300); delay(100); noTone(buzzer); delay(50); tone(buzzer, 4300); delay(100); noTone(buzzer); delay(1000); } Dodane: *efekty dźwiękowe *pzycisk reset
  7. // Adafruit NeoPixel - Version: Latest #include <Adafruit_NeoPixel.h> Adafruit_NeoPixel linijka = Adafruit_NeoPixel(8, A0, NEO_GRB + NEO_KHZ800); //Konfiguracja linijki void setup() { linijka.begin(); //Inicjalizacja linijka.show(); } void loop() { int i = 0; for(i = 0; i < 4; i++){ if(i < 4){ linijka.setPixelColor(i, linijka.Color(255, 0, 0)); linijka.setPixelColor(7 - i, linijka.Color(0, 0, 255)); } linijka.show(); delay(100); linijka.clear(); } for(i = 2; i > 0; i--){ linijka.setPixelColor(i, linijka.Color(255, 0, 0)); linijka.setPixelColor(7 - i, linijka.Color(0, 0, 255)); linijka.show(); delay(100); linijka.clear(); } } W ramach ćwiczeń stworzyłem prymitywną symulacje odbicia doskonale sprężystego
  8. @Treker dobrze myślę, że za gate w omawianym tu tranzystorze mosfet jest odpowiedzialne skrajne wyprowadzenie zamiast środkowego tak jak w omawianym tranzystorze w kursie elektroniki? Jeśli tak, to czy da sie określić kiedy baza jest w konkretnym miejscu? Pozdrawiam :)
  9. Wielki powrót! /* https://forbot.pl/blog/kurs-arduino-wyswietlacz-tekstowy-lcd-id4263 Zadanie domowe 7.4 */ #include <LiquidCrystal.h> //Biblioteka obslugujaca wyswietlacz LCD #define przycisk 8 //Przypisanie wejscia 8 do przycisku LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Deklaracja obiektu lcd void setup(){ lcd.begin(16, 2); //Iformacja o ilosci znakow i wierszy lcd.setCursor(0, 0); //Ustawienie kursora lcd.print("Stoper Start:"); //Komenda wypisania lcd.setCursor(0, 1); lcd.print("Czas:"); pinMode(8, INPUT_PULLUP); //Ustawienie funkcji wejscia 8 na INPUT_PULLUP } double czas; //Deklaracja obiektu czas void loop(){ lcd.setCursor(0, 0); //Ustawienie kursora lcd.print("Stoper Start!"); //Komenda wypisania lcd.setCursor(0, 1); lcd.print("Czas: 0"); czas=0.0; //Przypisanie wartosci zmiennej czas while(digitalRead(przycisk)==HIGH){} //Dopoki przycisk nie zostanie nacisniety delay(150); //opznienie while(digitalRead(przycisk)==HIGH){ lcd.clear(); //wyczysc ekran lcd.setCursor(0, 0); lcd.print("Stoper stop!"); czas+=0.1; //Dodaj do zmiennej czas 0.1 lcd.setCursor(0,1); lcd.print("Czas: "); lcd.print(czas); delay(100); } while(digitalRead(przycisk)==LOW){} //Zatrzymaj sie dopoki przycisk bedzie wcisniety delay(100); lcd.clear(); //wyczysc ekran lcd.setCursor(0, 0); lcd.print("Twoj czas!"); lcd.setCursor(0, 1); lcd.print(czas); while(digitalRead(przycisk)==HIGH){} delay(200); }
  10. /* Kurs Arduino #3 Zadanie domowe 2.5 */ #define LedC 9 //LED czerwony #define LedZ 8 //Led żółty bool LedC_czyWlaczony=false; //Zmienna do sprawdzania stanu wyjścia LedC bool LedZ_czyWlaczony=false; //Zmienna do sprawdzania stanu wyjścia LedZ String LED; //Zmienna do zapisywania wyboru koloru LED void setup() { Serial.begin(9600); //Ustawienie transmisji pinMode(LedC,OUTPUT); //Konfiguracja LedC jako wyjście pinMode(LedZ,OUTPUT); //Konfiguracja LedZ jako wyjście digitalWrite(LedC,LOW); //LED czerwony wyłączony digitalWrite(LedZ,LOW); //LED zółty wyłączony Serial.println("Dostępne kolory LED: Zolty, Czerwony"); //Informacja o dostępnych kolorach } void loop() { if(Serial.available()>0){ //Sprawdzenie czy Arduino odebralo znaki LED=Serial.readStringUntil('\n'); //Przypisanie znaków do zmiennej LED if(LED=="Zolty"){ //Sprawdzenie czy wybrano kolor żółty if(LedZ_czyWlaczony==false){ //Sprawdzenie czy LED żółty jest wyłączony digitalWrite(LedZ,HIGH); //Włącz LED zielony LedZ_czyWlaczony=true; //Zmień wartość zmiennej na prawde (LED włączony) } else if(LedZ_czyWlaczony==true){ //Sprawdzenie czy LED żółty jest włączony digitalWrite(LedZ,LOW); //Wyłącz LED zielony LedZ_czyWlaczony=false; //Zmień wartość zmiennej na fałsz (LED wyłączony) } } else if(LED=="Czerwony"){ //Sprawdzenie czy wybrano kolor czerwony if(LedC_czyWlaczony==false){ //Sprawdzenie czy LED czerwony jest wyłączony digitalWrite(LedC,HIGH); //Włącz LED czerwony LedC_czyWlaczony=true; //Zmień wartość zmiennej na prawde (LED włączony) } else if(LedC_czyWlaczony==true){ //Sprawdzenie czy LED czerwony jest włączony digitalWrite(LedC,LOW); //Wyłącz LED czerwony LedC_czyWlaczony=false; //Zmień wartość zmiennej na fałsz (LED wyłączony) } } else{ //Jeżeli podano nieobsługiwany kolor Serial.println("\nWybrales nieobslugiwany kolor!"); //Informacja o błędzie Serial.println("Obslugiwane kolory: Zolty, Czerwony"); //Informacja o dostępnych kolorach } } }
×