Halloween-Dekorationen

Diese Ausdrucksweise mit Fäkalbegriffen kannst Du Dir sparen. Bitte drück Dich gewählter aus.

Kann passieren und wir können das vergessen.

In der Zwischenzeit hast Du mehr Infos gegeben.
Im Anfangspost war zuwenig Infos um etwas zu raten.
Die US Sensoren gibt es in 2 Versionen SR04 oder SR05. Wenn man das Foto vergrößert sieht man daß es SR04 sind. Die haben gtrennten Trigger und Echo Anschluß.
Dann wäre gut zu wissen welche Nebelmaschiene und wie die anzusteuern ist ( ist in der Zwischenzeit beantwortet )

Wenn Du keine Netzwerkfunktionen oder Bluetooth brauchst, rate ich Dir zu einem Arduino UNO R3 oder Arduino NANO (bzw dessen Nachbauten). Die sind robuster und Du bekommst sie nicht so schnell kaputt.

Noch was zum Forum.
Die Idee das Forums ist dem Fragesteller zu Helfen, daß er sein Projekt verwirklichen kann und zwar weil er lernt, das machen zu können. Für Auftragsarbeiten gibt es den eigenen Tread (wurde schon hingewiesen) aber dann nicht gratis, und glaub mir diese Ausgaben willst Du nicht machen.

Also: Wenn Du lernen willst, das selbst zu machen, helfen wir Dir gerne. Chiave in mano - Lösungen wollen wir hier nicht geben. (italienisch: Schlüssel in die Hand; Heißt alles ist fertig und Du mußt Dich um nichts kümmern). Auch wenn man Arduino gut beherrscht braucht man dennoch einige Tage, um sowas zu bauen, programmieren und auszutesten.

Wenn jemand wirklich Dir eine Fertiglösung liefern möchte, gibt es da einige Fallstricke.
Der Gönner hat nicht Deine Hardware und auch nicht Dein Haus um die Teile am vorgesehenen Ort zu plazieren. Er kann nie ein Produkt liefern das bei Dir sicher funktioniert.
Außerdem wissen wir nicht, welche technischen Fähigkeiten Du hast. Man kann beim Verdraten und Montieren viele Fehler machen. Die können wir nicht vorhersehen. Die oft hier genannte Kristallkugel haben wir nicht oder ist gerade beim Putzen, neu Kalibrieren, verliehen an die Großmutter oder einfach die bessere Hälfte hat sie in Beschlag genommen :wink: :wink:.

Grüße Uwe

1 Like

Gibt ja auf Wokwi genug Beispiele für den Einstieg:

1 Like

ich liebe Hallowe'en

/*
2024 wiring:
Connect Arduino pin 5 to 5V opto coupled relay module
bypassing the manual toggle switch that comes with
fog machines:
Low level trigger type
*/

#include <NewPing.h>

const int sonarNum = 3;       // Number of HC-SR04 sensors
const int maxDistance = 400;  // Max distance to ping for (cm). Max possible sensor distance is about 400cm.

// use one to three sensors to cover desired range of detection, sketch won't care which
NewPing sonar[sonarNum] = {
  // Each sensor's trigger pin, echo pin, and max distance to ping for.
  NewPing(6, 7, maxDistance),
  NewPing(8, 9, maxDistance),
  NewPing(10, 11, maxDistance)
};
const int fogPin = 5;
const int led = LED_BUILTIN;
const unsigned long pingTimer = 50;
unsigned long lastPingInterval = 0;

unsigned long lastFogCountdown = 0;
unsigned long fogOnInterval = 5000;
const long countdownInterval = 1000;

byte state;
int ledState;
int fogPinState;

void setup() {
  pinMode(fogPin, OUTPUT);
  pinMode(led, OUTPUT);
  fogPinState = HIGH;
  ledState = LOW;
  Serial.begin(115200);
  // some blank lines because I like them
  for (int j = 0; j < 15; j++) {
    Serial.println("");
  }
  Serial.println(F("halloweenSonicFoggerV2024ed\n"));
  state = 0;
  Serial.println("off");
}

void loop() {
  unsigned long pingInterval = millis();
  if (pingInterval - lastPingInterval >= pingTimer) {
    lastPingInterval = pingInterval;
    for (uint8_t i = 0; i < sonarNum; i++) {
      if ((sonar[0].ping_cm() == 0) && (sonar[1].ping_cm() == 0) && (sonar[2].ping_cm() == 0)) {
        state = 0;

      } else if ((sonar[0].ping_cm() >= 10) || (sonar[1].ping_cm() >= 10) || (sonar[2].ping_cm() >= 10)) {
        state = 1;
      }
    }
  }
  switch (state) {
    case 0:
      fogPinState = HIGH;
      ledState = LOW;
      noFog();
      break;
    case 1:
      fogPinState = LOW;
      ledState = HIGH;
      deployFog();
      break;
    default:
      fogPinState = HIGH;
      ledState = LOW;
      noFog();
      break;
  }
}

void deployFog() {
  Serial.println("\non");
  unsigned long thisFogTimer = millis();
  while (thisFogTimer + fogOnInterval >= millis()) {
    digitalWrite(fogPin, fogPinState);
    digitalWrite(led, ledState);
  }
  Serial.println("\noff");
}

void noFog() {
  digitalWrite(fogPin, fogPinState);
  digitalWrite(led, ledState);
}