Guten Abend,
Ich hoffe ihr könnt mir helfen. Ich habe noch nicht angefangen das
Programm zu schreiben.
Ich habe ein Arduino nano Atmega328P.
Ich würde gerne zwei Schaltungen machen.
Ich habe 3 Taster mit Led Beleuchtung und eine Relais Karte mit zwei
Relais auch extra für Mikrocontroller.
Mit den ersten Taster will ich das erste Relais einschalten und
ausschalten, wenn das Relais einschaltet soll die LED auch angehen vom
Taster 1.
Mit den zweiten Taster will ich das zweite Relais einschalten und da
soll die LED von zweiten Taster angehen.
Mit den dritten Taster will ich das zweite Relais wieder ausschalten und
dann soll die LED aber von dritten Taster angehen wenn das Relais aus
ist.
Die zweite Schaltung soll aber nur gehen wenn das erste Relais
eingeschaltet hat.
Angeschlossen habe ich es so:
D3 LED dritte Taster
D4 LED zweiter Taster
D5 LED erster Taster
D6 Taster drei mit widerstand
D7 Taster zwei mit widerstand
D8 Taster eins mit Widerstand
D9 Relais 1
D10 Relais 2
Ich hoffe Ihr könnt mir sagen wie ich das schreiben soll.
Gruß
Michi
Michi schrieb:> Ich hoffe Ihr könnt mir sagen wie ich das schreiben soll.
Klar!
Du möchtest eine Ablaufsteuerung bauen...
So richtig, mit entprellen der Taster und dem ein, oder anderen,
endlichen Automaten.
Genau. Gegoogelt habe ich schon aber irgendwie werde ich nicht so schlau
daraus. Leider ist das nicht so einfach finde ich, ich arbeite ja gerne
mit SPS Logo damit habe ich keine Probleme
Aber mit dieser Programmier Sprache habe ich meine Schwierigkeiten :D
Ich habe ja nur gefragt ob mir vielleicht einer beim Programm schreiben
helfen kann. Wäre echt nett weil ich das nicht hinkriege so richtig.
Ich hatte zwar was im Arduino Forum gefunden um das zweite Relais mit
ein Taster ein zu schalten und mit den zweiten aus aber ich würde gerne
noch die erste Schaltung dazu machen das ich das erste Relais mit ein
Taster ein und ausschalten kann aber das kriege ich nicht hin.
Wäre dankbar für jede Hilfe.
Gruß
Michi
Michi schrieb:> Ich hoffe ihr könnt mir helfen.
Erstmal würde es helfen, den Deutschunterricht in der Schule etwas
ernster zu nehmen, das liest sich übel.
> Ich habe noch nicht angefangen das Programm zu schreiben.
Frage hier nicht nach einer fertigen Lösung, sondern erarbeite Dir
selbst die Grundlagen. Es gibt im Internet jede Menge Schulscripte zu
finden, beginne mit Blinken, Lauflicht, per Taste eine LED schalten und
so weiter.
Mikroprozessor und -controller hatte ich auf dem Tisch, lange bevor es
Internet gab und Arduino überhaupt unvorstellbar war. Ich habe mich
gefreut, dass ich nach mehreren Tagen Arbeit eine LED ein- und
ausschalten konnte. Als ich mir dann mal einen Arduino gekauft habe,
habe ich genau auf diesem Niveau wieder angefangen, mir Grundlagen zu
erarbeiten.
Wer das nicht will oder einsehen mag:
Schnurzi Furzi schrieb:> Können schon, aber ob wir wollen?
Manfred schrieb:> Michi schrieb:> Ich hoffe ihr könnt mir helfen.>> Erstmal würde es helfen, den Deutschunterricht in der Schule etwas> ernster zu nehmen, das liest sich übel.>> Ich habe noch nicht angefangen das Programm zu schreiben.>> Frage hier nicht nach einer fertigen Lösung, sondern erarbeite Dir> selbst die Grundlagen. Es gibt im Internet jede Menge Schulscripte zu> finden, beginne mit Blinken, Lauflicht, per Taste eine LED schalten und> so weiter.> Mikroprozessor und -controller hatte ich auf dem Tisch, lange bevor es> Internet gab und Arduino überhaupt unvorstellbar war. Ich habe mich> gefreut, dass ich nach mehreren Tagen Arbeit eine LED ein- und> ausschalten konnte. Als ich mir dann mal einen Arduino gekauft habe,> habe ich genau auf diesem Niveau wieder angefangen, mir Grundlagen zu> erarbeiten.>> Wer das nicht will oder einsehen mag:> Schnurzi Furzi schrieb:> Können schon, aber ob wir wollen?
Alles klar danke für die Hilfe..
Dann muss ich das selbst herausfinden.
Schönen Abend!
Schon ok. Habt ja recht. Muss ich selbst halt herausfinden wie das
funktioniert . Ich habe gefragt ob mir da jemand hilft. Aber egal ich
hol mir halt ein Buch dazu und versuche mein Glück. Ansonsten muss ich
wieder auf SPS umsteigen haha. Wollte nur ein Mikrocontrollerboard
nehmen wegen der kleinen Größe.
Gruß
Michi
Überlege dir erstmal wie du das ganze einem Roboter erklären würdest mit
ein paar befehlen:
Wenn blablabla, mache bliblablub
Lese Pin x
Setze Pin x auf y
Michi schrieb:> Schon ok. Habt ja recht. Muss ich selbst halt herausfinden wie das> funktioniert . Ich habe gefragt ob mir da jemand hilft. Aber egal ich> hol mir halt ein Buch dazu und versuche mein Glück.
Ohne Grundlagen wird nichts klappen. "Arduino Fanboy (ufuf)" hat seinen
Nick nicht zufällig gewählt, Arduino macht richtig Spaß, wenn man sich
erstmal eingearbeitet hat.
> Ansonsten muss ich wieder auf SPS umsteigen.
Das sind ja nun zwei ziemlich unterschiedliche Welten. Ich habe eine
erheblich lange Erfahrung mit digitalen Schaltungen auf IC-Ebene. Als
ich dann mal mit Kontaktplänen und Anweisungslisten konfrontiert wurde,
hatte ich erhebliche Schwierigkeiten, deren Denkweise zu erkennen und
umzusetzen. Wenn mich denn ein Kollege anruft, weil er einen KOP nicht
auf die Reihe bekommt ... immer eine schwere Geburt.
Kämpfe Dich durch, mit Arduino kann man sehr viel und das zu einem
Bruchteil der SPS-Preise. Nachteil ist natürlich, dass es keine nach
xx-Norm zertifzierten Interfaces gibt - Deine SPS oder Logo kannst Du
bedenkenlos auf die Hutschiene setzen, den Arduino nicht.
Wenn du hilfe brauchst wirst du sie hier auch bekommen, aber deine Frage
klingt sehr nach "schreibt mir das (bitte)"... Das wird hier aber keiner
machen.
Wenn du (je nach lernbereitschaft) in ca. einer Woche dein bisheriges
Programm zeigst, wirst du innerhalb weniger Minuten genug Antworten
haben um eine weitere Woche deine Fehler zu korrigieren.
Also fang mit pinMode(x, INPUT) an, mache mit digitalRead(x) weiter und
gib das mit digitalWrite(x1) aus. Wenn du das verstanden hast google
Variablen (bool, int, ...). Wenn du auch das verstanden hast verstehe
if(x){}. Wenn du all das glaubst zu verstehen kannst du hier ernsthaft
um Hilfe fragen, und dann wird das auch was mit deinem Projekt.
Michi schrieb:> Ich habe gefragt ob mir da jemand hilft.
Soll nicht das Problem sein!
Von mir kann ich sagen, dass ich gerne auf konkrete Fragen antworte.
Aber ich lese weder das ganze C++ Buch vor, noch habe ich besonderen
Elan dabei anderen die Software für Lau zu schreiben.
Wenn ich es dir schreiben würde, würdest du es vermutlich nicht
verstehen. Du würdest dann für einen Tag satt werden. Aber mehr auch
nicht.
Also hätte ich die Arbeit, und du vermutlich nix/wenig (oder gar das
falsche) gelernt.
Nebenbei:
So ganz habe ich deinen Text nicht verstanden.
Das erste Relais wird also nie wieder abgeschaltet?
eigentlich steht für dein Problem alles in den Beispiel Programmen.
Du musst dir angucken wie man einen Eingang abfragt und wie man eine Led
bzw bei dir ein Relais ansteuert. Da ist zb das blink-sketch hilfreich.
Hier wie man dann die Bedingungen gestaltet.
https://www.arduino.cc/reference/en/language/structure/control-structure/if/
Wenn Taster 1 High, dann so und so..
Der Button.ino sketch könnte dir auch helfen.
Einfach anstatt direkt die Led anzusteuern eine Variable umschalten und
dann je nach Variablenwert das Relais anziehen oder nicht.
Wenn du den Taster drückst, dann kannst du die Variable auf 1 setzen und
wenn wieder der Taster gedrückt wird, dann setzt du die Variable auf 0.
1
// constants won't change. They're used here to set pin numbers:
2
const int buttonPin = 2; // the number of the pushbutton pin
3
const int ledPin = 13; // the number of the LED pin
4
5
// variables will change:
6
int buttonState = 0; // variable for reading the pushbutton status
7
8
void setup() {
9
// initialize the LED pin as an output:
10
pinMode(ledPin, OUTPUT);
11
// initialize the pushbutton pin as an input:
12
pinMode(buttonPin, INPUT);
13
}
14
15
void loop() {
16
// read the state of the pushbutton value:
17
buttonState = digitalRead(buttonPin);
18
19
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
Thomas schrieb:> // check if the pushbutton is pressed. If it is, the buttonState is> HIGH:
aber nur wenn der "button" nach +VCC verschaltet ist.
besser wäre aber pullup nach VCC und "button" schaltet nach GND.
Der pullup begrenzt den Strom falls mal ein Kurzschluß vorliegt oder der
Port auf Ausgang low steht, die Abfrage sollte dann auf:
> // check if the pushbutton is pressed. If it is, the buttonState is> LOW:
lauten
https://www.mikrocontroller.net/attachment/105395/Dip-Schalter.pngBeitrag "Taster an Ports"
Michi schrieb:> Angeschlossen habe ich es so:> ...
Dann zeige mal deinen Schaltplan (und bitte nicht so ein
Stecken-nach-Zahlen Bild). Anhand des Textes kann kein Mensch erkennen,
was genau wie dran hängt. Die Sprache der Elektronik ist nun mal ein
Schaltplan.
Wenn der Schaltplan ok ist, kann man sich um die Initialisierung im
Programm kümmern. Und dann kannst du dich mit Tastenentprellung und FSM
beschäftigen. https://de.wikipedia.org/wiki/Endlicher_Automat
Leute er hat ne simple Aufgabenstellung und ihr kommt da mit Endlichen
Automaten und ähnlicher Theorie.
Da blickt doch ein Anfänger nicht durch. Er hat nicht vor E-Technik zu
studieren, sondern will mit einem Taster ein Relais ansteuern. Das geht
mit Arduino ähnlich schwer wie lego zusammen bauen.
Hans schrieb:> Leute er hat ne simple Aufgabenstellung und ihr kommt da mit> Endlichen> Automaten und ähnlicher Theorie.> Da blickt doch ein Anfänger nicht durch. Er hat nicht vor E-Technik zu> studieren, sondern will mit einem Taster ein Relais ansteuern. Das geht> mit Arduino ähnlich schwer wie lego zusammen bauen.
Ich denke er meinte mit "E-Technik" die Informatik!
Aber ein wenig Theorie der Informationsverarbeitung gehört dazu, um eine
saubere, d.h. funktionierende Lösung, zu beschreiben.
Ja Schreiben auf Papier gehört zu Modellierung der Aufgabenbeschreibung.
Bisher weis auch keiner, warum der TO das so machen will.
Hans schrieb:> und ihr kommt da mit Endlichen Automaten
Ob er will oder nicht...
Ob er weiß, oder nicht ...
Oder gar schon kennt..
Wie auch immer:
Ich behaupte mal, dass Arduinoprogramme, welche das tun, was sie tun
sollen, (nahezu) allesamt endliche Automaten sind. Und das völlig
unabhängig davon, ob derjenige das beabsichtigt hat, oder auch nicht.
Aus dem Blickwinkel betrachtet, dürfe es kein Fehler sein, sich ein
klein wenig mit der Theorie zu befassen.
Tipp:
1. (fast) Alles wurde schon gedacht.
2. Es tut keine Not das Rad neu zu erfinden, denn es wird nicht runder
davon.