D3binski
Użytkownicy-
Zawartość
17 -
Rejestracja
-
Ostatnio
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.
Osiągnięcia użytkownika D3binski
-
Kurs Raspberry Pi - #5 - instalacja/komunikacja przez UART
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
Pomocy, wpisałem komendę sudo shutdown now na moim raspberry Pi 4 lecz pojawił się jedynie komunikat "Power down" i już nic więcej nie mogę wpisać, a kontrolki wciąż się świecą Update: wgrałem system drugi raz z nadzieją, że to pomoże, ale nic z tego, ten sam problem, a nie chcę uszkodzić rpi -
Kurs Raspberry Pi od podstaw - #1 - wstęp, spis treści
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
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 :) -
Kurs Arduino II - #9 - wielozadaniowość, opóźnienia z millis()
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
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. -
Kurs Arduino II - #9 - wielozadaniowość, opóźnienia z millis()
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
#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. -
Kurs Arduino II - #7 - termometry analogowe i cyfrowe
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
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 🙂 -
Kurs Arduino II - #6 - wyświetlacze 7-segmentowe
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
@Treker i to jeszcze jak :) dziękuje za rzetelne wytłumaczenie :) -
Kurs Arduino II - #7 - termometry analogowe i cyfrowe
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
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. -
Kurs Arduino II - #6 - wyświetlacze 7-segmentowe
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
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 :) -
Kurs Arduino II - #5 - klawiatura, własny system alarmowy
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
@Treker, dziękuję, miło to słyszeć 🙂 -
Kurs Arduino II - #5 - klawiatura, własny system alarmowy
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
/* 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 -
Kurs Arduino II - #2 - diody RGB (tradycyjne oraz WS2812)
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
// 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 🙂 -
Kurs Arduino II - #3 - syrena alarmowa, MOSFET w praktyce
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
@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 :) -
Kurs Arduino - #7 - Wyświetlacz tekstowy, LCD 2x16
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
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); } -
Kurs Arduino - #3 - UART (komunikacja z PC), zmienne
D3binski odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
/* 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 } } }