BMX Startrampe bauen mit Arduino UNO

Poste doch auch mal einen Sketch

Unsinn falsche Einstellung, das verjagt die meisten Neulinge.
" Das ist dein Fahrrad da unten sid Tretpedale also fahre hinter mir "
Nach dem Motto lernt man nie was

Poste doch auch mal einen Sketch

Wozu?

Den muss der TO doch erstmal verstehen?

Wozu soll der TO oder jeder andere Dir einen Klick geben? Kannst Du Code nicht hier einstellen?

Also reine Werbeveranstaltung?

Von mir nicht als Werbeveranstaltung gemeint. Es geht mir überhaupt nicht um klicks. Ich wüsste nicht einmal das man da Klicks sammeln oder irgendwie Geld für KLicks bekommen würde. Das ist mir vollkommen wurscht.
Sondern das ist gedacht als aufmerksam machen auf

Dann verstehe ich nicht, warum Du Code hier nicht wie üblich ausspielst.
Deine Entscheidung.

Im Gegensatz zu Dir kann ich es.

Meiner - ohne debounce - ungetestet - hingerotzt - ohne Kommentare.
Mit nem Marder im Dachkasten und nem kleine Hornissenschwarm, der sich gerade vor dem Regen am Fenster aufhält.

Der TO wird den nicht verstehen.

const byte fusstaster = 3;
const byte magnet = 4;
enum {an, aus};
unsigned long lastmillis = 0;
unsigned long aufzeit = 1000UL * 10;
unsigned long startzeit = 0;
bool lastfuss = false;
void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));
  pinMode(fusstaster, INPUT_PULLUP);
  pinMode(magnet, OUTPUT);
  digitalWrite(magnet, aus);
  randomSeed(analogRead(0));
}

void loop()
{
  if (digitalRead(magnet) == aus)
  {
    if ((digitalRead(fusstaster) == an) && (lastfuss == false))
    {
      lastfuss = true;
      lastmillis = millis();
      startzeit = random(1000, 3000);
    }
    if (millis() - lastmillis >= startzeit)
    {
      digitalWrite(magnet, an);
      lastmillis = millis();
    }
  }
  if ((millis() - lastmillis >= aufzeit) && (digitalRead(magnet) == an))
  {
    digitalWrite(magnet, aus);
    lastfuss = false;
  }
}

Ich wiederhole mich:

Jetzt wo der TO WOKWI kennt kann er deinen Sketch über die Copy-Code-Funktion der Code-Section in die Zwischenablage kopieren.

Man führe die Maus in die rechte obere Ecke deines Codes und klicke auf das dort erscheinende Symbol. Das kopiert den Code in die Zwischenablage.

Sofern der TO schon einen Arduino hat kann er ja deinen Sketch mal aufspielen.
Wenn du noch einen Schaltplan dazupostest kann er auch die Hardware nachbauen.

Eine recht ausführliche Einführung in Arduino-Programmierung auf deutsch findet man hier:
https://www.hobbyelektroniker.ch/roboter/arduinoeinfuehrung/

Und Elektrotechnik Grundlagen hier
https://www.hobbyelektroniker.ch/grundlagen/

[edit] - nochmal erneuert, nach #28

Und Du hälst Deinen Code weiterhin geheim.
Schon mal gelesen?

Aber mach mal.

Das Gleiche hatte ich auch.

Naja - Server steht in Amiland.
Kann man machen....

Ich habe den WOKWI-Link jetzt an einem anderen Laptop ohne Anmeldung bei WOKWI getestet. Funktioniert. Ich schlussfolgere daraus, dass es im Allgemeinen geht. Ausnahmen bestätigen (in der Regel) die Regel. Ich fände interessant ob es denn der TO aufrufen kann.
vgs

Ich kann nur sagen, das es auch hier nicht geht.
Zwei Standorte - gleiches Ergebnis.
Bildschirmfoto von 2021-09-24 10-42-54

Dafür mein Code noch mit der internen LED versehen, kommentiert und der Öffnungsmechanismus auf Basis des angezogenen Magneten verriegelt.

const byte fusstaster = 3;              // Auslösekontakt
const byte magnet = 4;
enum {an, aus};                         // zur Verwendung negierter bool Werte
unsigned long lastmillis = 0;           // Merker für interne Zeit
unsigned long aufzeit = 1000UL * 10;    // Anzugzeit des Magneten
unsigned long startzeit = 0;            // später variable Zeit wann geöffnet wird
bool lastfuss = aus;                    // Merker ob ausgelöst
void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));
  pinMode(fusstaster, INPUT_PULLUP);    // Auslöser wird nach GND beschaltet
  pinMode(magnet, OUTPUT);
  digitalWrite(magnet, aus);            // Grundstellung
  randomSeed(analogRead(0));            // Grundlage Zufallszahlen
}

void loop()
{
  if (digitalRead(magnet) == aus)       // Wenn Magnet nicht aktiviert...
  {
    if ((digitalRead(fusstaster) == an) // ... und der Auslöser aktivert ...
        && (lastfuss == aus))           // ... und vorher nicht aktiviert
    {
      lastfuss = an;                    // Merke Aktivierung
      lastmillis = millis();            // merke Jetzt Zeit
      startzeit = random(1000, 3000);   // Zufallszahl zwischen 1 und 3 Sek
    }
    if ((millis() - lastmillis >= startzeit) // Wenn Startzeit erreicht...
        && (magnet == aus))             // und nicht ausgelöst
    {
      digitalWrite(magnet, an);         // auslösen
      digitalWrite(LED_BUILTIN, HIGH)   // anzeige mit onBoardLED
      lastmillis = millis();            // Zeit merken
    }
  }                                     // Ende "Wenn Magnet nicht aktiviert"
  if ((millis() - lastmillis >= aufzeit)// Öffnungszeit abgelaufen...
      && (digitalRead(magnet) == an))   // ... und Magnet an
  {
    digitalWrite(magnet, aus);          // Magnet aus
    digitalWrite(LED_BUILTIN, LOW);     // LED aus
    lastfuss = false;                   // Merker löschen
  }
}

Ich fände es interressant zu erfahren, warum Du Dich so auf ein - offensichtlich nicht nur durch mich - nicht erreichbares Ding versteifst und Deinen Code dahinter versteckst.

Na dann - @lukasmb ist hoffentlich nicht verschreckt.

Ich schlage vor das @lukasmb macht eine Skizze der Rampe mit wo und wie sol das Magnet befestigt werden, wahrscheinlich brauch man kein "Fußtaster"

Holla die Waldfee, das ging ja ganz schön ab hier.
Ich in leider nicht früher dazu gekommen, mich zurückzumelden.
Eine Schaltskizze habe ich gezeichnet, die folgt später noch.
Inzwischen habe ich auch mit meinen Techniklehrern darüber gesprochen.
Ein Elektrotechniklehrer hat mir dieses Relais empfohlen, dass sei für meine Zwecke ausreichend:

Dazu eine Frage, auf diesem Relais steht nix davon wieviel V oder A der Laststromkreis haben darf, ist das wirklich so oder habe ich etwas übersehen?
Eure Codes werde ich mir mal näher ansehen. Es bringt mir ja nix das ganze einfach zu copy pasten, da ich den Code selber vestehen und am Ende des Projekt auch erklären muss/will.

auf dem Relais steht 250V 10A das sind die Maximalwerte für den Laststromkreis (dein Elektromagnet)

Dann steht da 5V DC das ist die Steuerspannung.
Aber weder auf der Platine noch auf der Seite von Funduino steht etwas zur Stromaufnahme des Steuerkreises.

Auf der Platine des Relais ist ein Bauteil aufgelötet, schwarz drei Anschlüsse.
Das ist vermutlich der Transistor der dann die Relaisspule schaltet.

Das bedeutet:
Der IO-Pin der zum Steuern vewendet wird, wird nur mit einem kleinen Strom belastet.

Dieses Relais-Modul hat keine galvanische Trennung zwischen Arduino und Relaisspule.
Wenn ein Relais dieser Größe bei 5V durchschalten soll dan hat die Relaisspule einen vergleichsweise kleinen Widerstand.

Der wird sich im Bereich 50 bis 100 Ohm bewegen.
Macht dann bei 5V einen Strom von

5V / 50 Ohm = 100 mA
5V / 100 Ohm = 50 mA.

Wenn man jetzt das Relaismodul über den Spannungsregler des Arduinos versorgen will ist das bei 100 mA schon grenzwertig. Vor allem wenn man den Arduino mit 12V versorgt. Dann müssen nämlich (12V - 5V) = 7V
7V * 0.2A = 1,4W im Spannungsregler in Wärme umgewandelt werden.
Dadurch wird der ganz schön heiß.

Da wäre es besser noch einen DC-DC-Stepdownwandler wie zum Beispiel diesen hier dazu zu nehmen.

Der shop hat übrigens das gleiche Relaismodul zu einem günstigen Preis

Bei den Preisen sind die garantiert aus China. Da du nur 12V 0,3 A schalten willst
und auch immer jemand dabei ist wenn das ganze in Betrieb ist habe ich da keine Bedenken.
Für eine Anwendung wo im Dauerbetrieb 24/7 230V geschaltet werden würde ich höherpreisige Sachen verwenden.

Die Tastergröße ist vollkommen wurscht. Du könntest auch einen Schalthebel aus einem 380.000 Volt Umspannwerk nehmen. Das würde mit 5V genauso funktionieren wie ein Mikroschalter.
Wichtig ist sich diese Elektrotechnikgrundlagen zum Anschluss von Schaltern an einen Arduino durchzulesen

http://www.gammon.com.au/switches

Wenn du nicht so gut englisch kannst übersetzen lassen.
Mit google chrome geht das recht einfach
vgs

Also ich kann mich da des Verdachts nicht ganz erwehren, das es manchen einfach nicht gefällt wenn der code nicht gaaanz direkt hier rein gepostet wird.

Ich vermute wenn man seinen Rechner in Sachen Antivirenschutz nicht gerade auf "paranoia-extreme" stehen hat das dann das Aufrufen der WOKWI-Seite sehr wohl funktioniert. (Vielleicht hatte aber auch das Netzwerkkabel einen Wackler?)

Bei mir Zu Hause funktioniert die WOKWI-Seite
In der Schule auf einem Popel-Notebook funktioniert die WOKWI-Seite
auf einem Ipad 2 funktioniert die WOKWI-Seite
auf einem Samsung XCover 4 mit duckduckgo-browser funktioniert die WOKWI-Seite. Sowohl mit WLAN als auch mit mobilen Daten.
Mit Firefox für Android geht es, Mit Opera für Android geht es.

Ich finde das sind genug Möglichkeiten um an meinen angeblichen "Geheimcode" ran zu kommen.
vgs

Da magst Du nicht Unrecht haben.
Denk mal drüber nach, warum das so sein könnte.
Sollte es Dir nicht einfallen: lesen

Vielleicht den ganzen Text lesen, da hat sich @deytron viel Mühe gegeben.

Jaja,
so sind wir :wink:

Der Lehrer hat recht.

Ansonsten steht schon auf dem relais, was das Ding kann. Du arbeitest mit Kleinspannung und auch im Leistungsbereich weit unter der Grenze.
Alles gut.

Ja, das war genau das, was ich angefangen habe. War ja rauszulesen.
Aber ich wurde aber aufgefordert Code zu posten - habe ich gemacht....

Nein im Ernst: Du komm ganz langsam ran und das wird.

Was Deinen Plan angeht:
Ich hätte den Pin vom Relais nicht auf 10 sondern auf 2 gepackt.

Der "Knopf" soll ja ein Fussschalter/-taster sein. Da kommt dann irgendwas wie dieser in Frage:

Der geht mit 5V oder auch 2V oder eben 24V. :wink:
Nein, die Frage ist nicht mit wieviel Volt der Schalter geht, sondern wie sicher er schaltet.
Am PIN muss ein Levvel ankommen, welches dafür sorgt, das sicher umgeschalten wird.

Noch ein Hinweis:
Auch wenn gerne als Eingang der Hohlbuchse mit 7-12 odder gar 16V beschriftet wird, bedenke, das alles was über 5V später über den Regler in Wärme verbraten werden muss.
Das kann funktionieren, mss aber nicht.

Wenn Du kannst, teile die Speisung auf 2 Netzteile:
1x 7-9V für den Arduino und 1x 12V für das Magnet.

Wegen WOKWI Simulator:

Es ging mir explizit darum auf den WOKWI-Simulator hinzuweisen.
Und dann natürlich am besten mit einem Beispielcode.

So gut wie alle Libraries sind auf GitHub gespeichert.
Wenn da der Autor in 2-5 Jahren irgendwas fundamental ändert oder seine library vom Netz nimmt dann kuckt man auch in die Röhre. Bei Links zu Projekten von Privatleuten ist auch nicht garantiert, dass die in 10 Jahren noch unter dem gleichen Link zu erreichen sind.

Ich plädiere jetzt nicht dafür möglichst alles möglichst unübersichtlich zu verteilen.
Wenig bis gar nicht erklärter Sourcecode, Minimalbeispiele und minimalistische Doku macht schon genug Frust.
Aber nur um alle Infos möglichst zusammenzuhalten deswegen neue Möglichkeiten beinahe zu verschweigen? Nee das finde ich schlecht.
Wenn es jetzt einen noch tolleren Simulator direkt von Arduino-cc gäbe wäre das etwas anderes.

Wie wäre es mal etwas neues auszuprobieren?
Schon mal einen Seeeduino XIAO programmiert? Oder einen Teensy?
Oder einen Propeller-Chip?

Wie???!!! Der Propeller-Chip hat keeeeine Interrupts??? Das geht ja gaarnicht!
Wie soll man denn da (vernünftig) programmieren können???!!

Nun für einen Propeller-Chip ist es überhaupt kein Problem 4 oder wenn man es braucht 8 serielle Schnittstellen die jede 115200 baud kann zu bedienen.
Oder 3x SPI und 5x I2C ganz nach belieben.

Und wie wird der programmiert? Mit SPIN?! igitt da müsste ich ja eine neue Programmiersprache lernen!

Und diese IDE für den Propeller-Chip macht automatisch für jede neue function eine abwechselnde Farbe da blickt ja gleich jeder Anfänger durch wo die nächste function anfängt!

Naja ist ja alles nur Hobby. Da kann jeder so beschränkt denken und handeln wie er will.