Skocz do zawartości

Raccoon

Użytkownicy
  • Zawartość

    23
  • Rejestracja

  • Ostatnio

Reputacja

18 Dobra

O Raccoon

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Warszawa
  • Programuję w
    Java, Kotlin, Python
  • Zawód
    Programista Android
  • Moje zainteresowania:
    Matematyka, astronomia, fotografia

Ostatnio na profilu byli

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

  1. Rozwiązanie zadania 4.1, czy ktoś zna lepszy sposób na nie wyłączanie alarmu po ponownym zetknięciu kontaktronu niż while(true)? #define LED_R 10 #define LED_G 11 #define LED_B 12 #define CONTACTOR 2 #define BUZZER A5 void setup() { pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(CONTACTOR, INPUT_PULLUP); digitalWrite(LED_G, HIGH); } void loop() { if (digitalRead(CONTACTOR) == HIGH) { digitalWrite(LED_R, HIGH); digitalWrite(LED_G, LOW); while (true) { tone(BUZZER, 3700); delay(500); tone(BUZZER, 4300); d
  2. @pawelmb Też się od tego odbiłem - można wrzucać gify. Są apki na telefon, można sobie bezpośrednio w telefonie przerobić film na gif-a i wysłać tutaj.
  3. Zgodnie z obietnicą jest pianino Niestety z powodu małej płytki stykowej nie udało mi się w sensowny sposób umieścić półtonów - więc jest tylko podstawowa skala C-dur. Da się na tym zagrać np. "Wlazł kotek na płotek". Co do programu - tak jak zalecają w przykładach do funkcji tone() definicje częstotliwości dźwięków są w pliku pitches.h - dzięki temu można ich używać w wielu szkicach bez kopiowania. #include "pitches.h" #define BUTTON_C6 2 #define BUTTON_D6 3 #define BUTTON_E6 4 #define BUTTON_F6 5 #define BUTTON_G6 6 #define BUTTON_A6 7 #define BUTTON_B6 8 #define
  4. Napisałem program, który powinien grać melodie z mojej ulubionej animacji - "The grand day out" z & Grommit. Niby wszystko spisane z nut jak trzeba ale coś nie do końca brzmi jak powinno . Czas na budowę pianina #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_G5 784 #define NOTE_C6 1047 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_WHOLE 3200 #define NOTE_HALF (NOTE_WHOLE / 2) #define NOTE_QUATER (NOTE_HALF / 2) #define NOTE_EIGHTH (NOTE_QUATER /2) #define NOTE_SIXTEENTH (NOTE_EIGHTH /2) void se
  5. @Gieneq Dzięki za wyczerpujące wyjaśnienia. Rozjaśniłeś mi temat. Ciekawy artykuł podlinkowałeś.
  6. Mam pytanie odnośnie wielkości kondensatora jaki należy podłączyć równolegle z listwą diod do zasilania. W tekście jest napisane Od czego ona zależy i jak? W kursach elektroniki i techniki cyfrowej zwykle do zasilania były wpinane równolegle 2 kondensatory 100nF i 220uF.
  7. Witam, kolejny świetny odcinek kursu. Zaprogramowałem sekwencję jak z "Nieustraszonego" - to pierwszy element mojego KITT-a . Chciałem po kursie elektroniki zrobić wersję analogową, ale jakoś nie udało mi się kupić jeszcze układu zliczającego. Tutaj w pętli oprócz zaświecania kolejnej diody zaświecam słabiej 2 sąsiednie. Poniżej program i film jak to działa. #include <Adafruit_NeoPixel.h> #define pixelsNumber 8 #define ledPin A5 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(pixelsNumber, ledPin, NEO_GRB + NEO_KHZ800); const uint32_t darkRed = pixels.Color(2, 0, 0); const uint
  8. Poniżej mój program z linijką, w której diody będą się rozświetlają stopniowo tzn. pierwsza zacznie świecić coraz mocniej od 128 cm, przy 64 będzie świecić pełną mocą, i wtedy kolejna dioda zacznie się rozświetlać itd. Skorzystałem z tablic (których jeszcze na kursie nie było) - tablice i pętle pozwoliły znacznie skrócić program . Funkcja constrain() przy obliczaniu jasności diody użyta bo funkcja analogWrite() nie robi tego sama - zakłada, że wartość drugiego argumentu będzie z przedziału 0 - 255. To dziwne moim zdaniem, że przyjmuje argument value typu int podczas gdy mogłyby być
  9. Świetny kurs - jak wszystkie inne które na Forbocie przerabiałem - dużo wiedzy podanej w przystępny dla laika sposób. Jednakże wszyscy jesteśmy ludźmi i popełniamy błędy , w tekst lekcji wkradł się taki: tu powinno być nazwę naszej funkcji a nie zmiennej.
  10. Cześć, poniżej mój program stopera: #include <LiquidCrystal.h> #define startBtn 11 #define stopBtn 10 const unsigned long secondInMillis = 1000; const unsigned long minuteInMillis = 60 * secondInMillis; const unsigned long hourInMillis = 60 * minuteInMillis; LiquidCrystal lcd(2, 3, 4, 5, 6, 7); unsigned long timer = 0; // czas ktory uplynal w milisekundach int dt = 97; // krok czasowy stopera - licba pierwsza, zeby ladnie dziesiate i setne czesci sekundy sie zmienialy bool isRunning = false; void setup() { pinMode(startBtn, INPUT_PULLUP); pinMode(stopBtn, INPUT_PULLU
  11. @GieneqCoś trzeba robić w długie zimowe wieczory
  12. Cześć, poniżej kod mojego programu - światłomierz z kalibracją. Kalibracja włącza się jak wciśnie się jeden przycisk a wyłącza jak wciśnie się drugi. W trakcie kalibracji świeci się dioda. #include <Servo.h> #define calibrationStartBtn 2 #define calibrationFinishBtn 3 #define calibrationLED 5 #define servoPin 10 #define lightMeterInput A5 int minLightMeter = 0; int maxLightMeter = 1023; int currentAngle = 0; int readValue = 0; int newAngle = 0; Servo servo; void setup() { pinMode(calibrationStartBtn, INPUT_PULLUP); pinMode(calibrationFinishBtn, INPUT_PULLUP)
  13. Tu moje rozwiązanie zadania 4.6 - ze wskazywaniem kierunku światła. Zrobiłem na 3 diodach bo na 5-ciu byłby bałagan na płytce a zasada działania taka sama. Tu układ narysowany w Fritzing - niestety znalazłem tylko czerwone LEDy A tu program: #define center 13 #define left 12 #define right 11 #define leftInput A0 #define rightInput A1 float scaledLeft = 0; float scaledRight = 0; float difference = 0; void setup() { pinMode(left, OUTPUT); pinMode(center, OUTPUT); pinMode(right, OUTPUT); digitalWrite(left, LOW); digitalWrite(center, LOW); digitalWrite(right, LOW);
  14. @Gieneq wiem, dopiero przy pisaniu tego programu ogarnąłem jak działa funkcja loop() - że jest wołana kolejny raz po zakończeniu poprzedniej iteracji a nie regularnie co jakiś odstęp czasu. Poza tym późno było jak to pisałem. Zapiszę sobie przypominajkę, żeby wrócić do tego zadania wyposażony w maszynę stanów.
  15. #define green 13 #define red 12 #define yellow 11 #define button 8 #define resistor A5 int valueToGuess = 0; int attempt = 0; int duration = 500; void setup() { pinMode(green, OUTPUT); pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(button, INPUT_PULLUP); Serial.begin(9600); Serial.println("Zagrajmy - ustaw potencjometr i wciśnij guzik"); } void loop() { String userInput = ""; int userValue = 0; attempt = 0; while (digitalRead(button) == HIGH) {} //czekaj na przycisk valueToGuess = analogRead(resistor); while (attempt < 4) { attempt++; Serial.pr
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.