mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe beim Arduino Programm schreiben


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Michi (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
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

Autor: Schnurzi Furzi (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Michi schrieb:
> Ich hoffe Ihr könnt mir sagen wie ich das schreiben soll.

Können schon, aber ob wir wollen? Ich weiss nicht ....

Autor: Copy&Paste (Gast)
Datum:

Bewertung
-4 lesenswert
nicht lesenswert
Dafür gibt's doch sicher schon einen Sketch. Einfach mal danach googeln.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
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.

Autor: Michi (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
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

Autor: Manfred (Gast)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
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?

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Michi schrieb:
> Dann muss ich das selbst herausfinden.

Was erwartest du von uns/mir?
Das lernen können wir dir nicht abnehmen.....

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Nice (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Ü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

Autor: Manfred (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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.

Autor: devzero (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Es helfen Dir sicher viele, aber Du musst halt anfangen, Code posten und 
dann schildern wo genau es hakt..

Autor: AVR (Gast)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
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.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
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?

: Bearbeitet durch User
Autor: Thomas (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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..

Autor: Thomas (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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.


// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.png
Beitrag "Taster an Ports"

: Bearbeitet durch User
Autor: Wolfgang (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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

Autor: Percy N. (vox_bovi)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Als der Stab des Papstes austrieb, war Tannhäuser längst wieder im 
Venusberg.

Und er hatte dort viel Spaß!

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl M. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
Autor: Dieter F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino F. schrieb:
> Es tut keine Not das Rad neu zu erfinden, denn es wird nicht runder
> davon.

Wer sagt, das es das sein muss?

https://www.sport1.de/actionsport/2016/12/eckig-rollt-besser-shark-wheel-erfindet-das-rad-neu

:-)

Autor: Andreas R. (daybyter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann bisserl coden. Wenn Du nicht weiter kommst, sag mal Bescheid.

Hast Du die Arduino IDE schon am Laufen?

Autor: Alex G. (dragongamer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieter F. schrieb:
> Arduino F. schrieb:
>> Es tut keine Not das Rad neu zu erfinden, denn es wird nicht runder
>> davon.
>
> Wer sagt, das es das sein muss?
>
> 
https://www.sport1.de/actionsport/2016/12/eckig-rollt-besser-shark-wheel-erfindet-das-rad-neu
>
> :-)

Hmm, bei den Mythbusters hatte das nicht so gut geklappt: 
Youtube-Video "Square Wheels - Mythbusters for the Impatient"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.