31 października 2023

Halloween z arduino i Code Designer

Dziś zaczniemy od projektu halloween'owego z arduino, drukiem 3D i lampkami LED. Będziemy potrzebować podstawowego zestawu edukacyjnego lub MEGA, kilku kabli, diód LED w różnych kolorach, drukarki 3D i lutownicy. Zaczniemy od drukowania dyń i domku pliki STL dostępne na końcu artykułu.

Halloween z arduino i Code Designer 1

Teraz musimy nadać naszym dyniom trochę życia. Otwieramy code-designer, wybieramy Education-Board i wchodzimy w zakładkę kod źródłowy. Teraz napiszemy program który sprawi, że nasza dioda będzie wyglądała jak paląca się świeczka, którą możemy zapalić i zgasić przy pomocy przycisku. Tak powinien wyglądać nasz program:

bool dynia = false; // Zmienna "dynia" przechowuje stan lamki LED - false oznacza wyłączoną, a true włączoną.

// Funkcja zmienia jasność lamki LED w losowy sposób.
void swiatlo_dynia() {

  analogWrite(7, random(50, 255));  // Ustaw jasność LED w zakresie od 50 do 255.
  delay(random(50, 250)); // Poczekaj losowy czas od 50 do 250 milisekund.
}

void setup() {
  pinMode(2, INPUT); // Konfiguruje pin 2 jako wejście (do odczytu stanu przycisku).
  pinMode(7, OUTPUT); // Konfiguruje pin 7 jako wyjście (do sterowania lampką LED).
}

void loop() {

if (digitalRead(2) == 0) {

  // Jeśli przycisk jest wciśnięty (stan niski), przełącz stan lampki LED (włącz/wyłącz).
  if (dynia) {
    dynia = false; // Jeśli była włączona, wyłącz lamkę LED.
    digitalWrite(7, LOW);
  } else {
    dynia = true; // Jeśli była wyłączona, włącz lamkę LED.
    digitalWrite(7, HIGH);
  }

  delay(400); // Opóźnienie, aby uniknąć przypadkowego przełączania.
}

if (dynia)
  swiatlo_dynia(); // Jeśli lamka LED jest włączona, uruchom funkcję "swiatlo_dynia".
}

Teraz lutujemy nasze diody z odpowiednimi rezystorami, podłączamy kabelki i wkładamy nasze diody do dyń i do domku. Aby włożyć światełka do domku najlepiej przykleić na gorący klej kawałek filamentu z drukarki 3d tak aby światełka były dalej od okien, dzięki temu nasze światło będzie widoczne w każdym okienku.

Halloween z arduino i Code Designer 2
Halloween z arduino i Code Designer 3
Halloween z arduino i Code Designer 4
Halloween z arduino i Code Designer 5

Tak podłączone LEDy podłączamy do naszej płytki (Kabelki odchodzące od rezystorów idą do uziemienia czyli pinu GND, a kabelki odchodzące od dłuższej nóżki LEDów podłączamy do pinów D7 - dynia D8 - domek).

Halloween z arduino i Code Designer 6

Powyżej podłączeni dyni - GND + D7.

Halloween z arduino i Code Designer 7

Powyżej podłączenie domku - GND + D8 (zamiast VCC)

Po podłączeniu nasza dynia powinna sprawiać wrażenie jakby w środku była świeczka po kliknięciu przycisku D2.

Mamy program sterujący światłami dyni, teraz musimy oświetlić jeszcze nasz dom strachów. Modyfikujemy nasz program tak aby przycisk D3 włączał i wyłączał światło w naszym domku. Program powinien wyglądać tak:

bool dynia = false; // Zmienna "dynia" przechowuje stan lamki LED - false oznacza wyłączoną, a true włączoną.
bool domek = false; // Zmienna "domek" przechowuje stan oświetlenia domku - false oznacza wyłączone, a true włączone.

// Funkcja zmienia jasność lamki LED w losowy sposób.
void swiatlo_dynia() {

  analogWrite(7, random(50, 255)); // Ustaw jasność LED w zakresie od 50 do 255.
  delay(random(50, 250)); // Poczekaj losowy czas od 50 do 250 milisekund.
}

void setup() {

  pinMode(3, INPUT); // Konfiguruje pin 3 jako wejście (do odczytu stanu przycisku "dynia").

  pinMode(2, INPUT); // Konfiguruje pin 2 jako wejście (do odczytu stanu przycisku "domek").

  pinMode(7, OUTPUT); // Konfiguruje pin 7 jako wyjście (do sterowania lampką LED).

  pinMode(8, OUTPUT); // Konfiguruje pin 8 jako wyjście (do sterowania oświetleniem domku).
}


void loop() {

  if (digitalRead(2) == 0) {

    // Jeśli przycisk "dynia" jest wciśnięty (stan niski), przełącz stan lampki LED (włącz/wyłącz).

    if (dynia) {

      dynia = false; // Jeśli była włączona, wyłącz lamkę LED.

      digitalWrite(7, LOW);

    } else {

      dynia = true; // Jeśli była wyłączona, włącz lamkę LED.

      digitalWrite(7, HIGH);

    }

    delay(400); // Opóźnienie, aby uniknąć przypadkowego przełączania.

  }

  if (digitalRead(3) == 0) {// Jeśli przycisk "domek" jest wciśnięty (stan niski), przełącz stan oświetlenia domku (włącz/wyłącz).

    if (domek) {

      domek = false; // Jeśli było włączone, wyłącz oświetlenie domku.

      digitalWrite(8, LOW);

    } else {

      domek = true; // Jeśli było wyłączone, włącz oświetlenie domku.

      digitalWrite(8, HIGH);

    }

    delay(400); // Opóźnienie, aby uniknąć przypadkowego przełączania.

  }

  if (dynia) {
    swiatlo_dynia(); // Jeśli lamka LED jest włączona, uruchom funkcję "swiatlo_dynia".
  }
}

Teraz wystarczy przygotować nasze dekoracje do sesji zdjęciowej i gotowe.

Halloween z arduino i Code Designer 8

Linki do dyni i domku:

https://www.thingiverse.com/thing:6238747

https://www.thingiverse.com/thing:6241966

https://www.thingiverse.com/thing:4974709

https://www.thingiverse.com/thing:6247095

Dodaj komentarz

Copyright © 
Code Designer 2024