Skocz do zawartości

D3binski

Użytkownicy
  • Zawartość

    16
  • Rejestracja

  • Ostatnio

Reputacja

10 Dobra

O D3binski

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. O, faktycznie nie kliknąłem w odblokowanie udostępniania linków. Już wszystko naprawione jak tylko będę miał dostęp do komputera to wstawię zdjęcia odrazu na forum, a póki co link do upewnienia się ze plakaciki dyndają w szkole
  2. Wklejam link, bo nie wchodzą zdjęcia z telefonu z nadgryzionym jabłkiem https://drive.google.com/drive/folders/1-2cGH9Z7ETjaUdTwlP7Mqhh8KHmPUfEl
  3. Cześć, zastanawiam się czy RPi będzie działało podłączone przez hdmi do laptopa. Czy jest to możliwe czy trzeba kombinować? Udałoby się cos zdziałać na laptopie czy byłoby więcej problemów niż nauki? Pozdrawiam :)
  4. Chętnie powiesilbym takie dwa plakaty u mnie w liceum. Miasto: Zamość, szkoła: I Liceum Ogólnokształcące. Plakat schludny i przejrzysty :) Fajny byłby myk gdyby w każdej szkole były dwie różne wersje plakatu z rożnymi komentarzami:)
  5. Prosiłbym o poradę co dalej. Skończyłem pierwszy poziom elektroniki i oba poziomy arduino. Chciałbym spróbować z Raspberry, ale zastanawiam sie czy nie lepiej bedzie bardziej najpierw rozwinąć umiejętności związane z arduino lub elektronika bądź zacząć naukę lutowania? Byłbym wdzięczny za każda pomoc.
  6. #define kontaktron 4 #define pir 7 #define led_r 5 #define led_g 6 #define led_b 9 #define foto_rez A0 #define potencjometr A5 unsigned long aktualnyCzas = 0; //Zmiene pomocnicze do obslugiwania f. miilis() unsigned long zapamietanyCzas = 0; unsigned long timerLED = 10000; boolean czyCiemno = false; //zmienna infomujaca o oswietleniu boolean czyWlaczyc = false; //zmienna pomocnicza do f. wlacznik() boolean zapamietanyTryb = czyWlaczyc; int progJasnosci = 0; //zmienne do obslugiwania progu jasnosci int wartoscPotencjometru = 0; int jakJasno = 0; void setup() { Serial.begin(9600); pinMode(kontaktron, INPUT_PULLUP); //Ustawienie pinow pinMode(pir, INPUT); pinMode(led_r, OUTPUT); pinMode(led_g, OUTPUT); pinMode(led_b, OUTPUT); } void loop() { aktualnyCzas = millis(); //pobranie czasu ktory uplynal od wlaczenia plytki progJasnosci = analogRead(potencjometr); jakJasno = map(analogRead(foto_rez), 0, 1023, 200, 1100); if(jakJasno < progJasnosci){ //sprawdzenie poziomu jasnosci czyCiemno = true; //jesli ciemno, to zmien watosc zmiennej na pawde } else{ czyCiemno = false; //jesli jasno, zmien wartosc funkci na true czyWlaczyc = false; } if(czyCiemno){ //jesli jest ciemno if(digitalRead(kontaktron) == HIGH){ czyWlaczyc = false; } else if(digitalRead(pir) == HIGH){ //jesli wykryto takze ruch zapamietanyCzas = aktualnyCzas; //zapamietaj czas w ktorym ostatnio wykryles ruch czyWlaczyc = true; } } else{ czyWlaczyc = false; //jesli jest jasno to wylacz swiatlo } if(aktualnyCzas - zapamietanyCzas >= timerLED){ //jesli minie wyznaczony czas czyWlaczyc = false; //wylacz swiatlo } if(zapamietanyTryb == !czyWlaczyc){ //jesli zmieni sie tryb swiecenia zapamietanyTryb = czyWlaczyc; //zapamietaj aktualny tryb wlacznik(czyWlaczyc); //pzekaz aktualny tryb do f. wlacznik } } void wlacznik(boolean tryb){ //Funkcja obslugujaca wlaczanie/wylaczanie swiatla if(tryb){ digitalWrite(led_r, HIGH); digitalWrite(led_g, HIGH); digitalWrite(led_b, HIGH); } else{ digitalWrite(led_r, LOW); digitalWrite(led_g, LOW); digitalWrite(led_b, LOW); } } Program rozbudowany o fotorezystor i potencjometr to ustawienia maksymalnej wartości natężenia światła. Funkcja map do zneutralizowania problemu ze zbyt małą wartością napięcia na fotorezystorze przy zgaszonym świetle. Uwagi mile widziane, może uda się coś skrócić. @Treker, ogromne podziękowania i ukłony w Twoją stronę. Świetnie się bawiłem już od pierwszego poziomu kursu.
  7. 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
  8. @Treker i to jeszcze jak :) dziękuje za rzetelne wytłumaczenie :)
  9. 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.
  10. 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 :)
  11. /* 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
  12. // 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
  13. @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 :)
  14. 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); }
×
×
  • Utwórz nowe...