Hilfe beim Arduino Programm schreiben

Gast #5429910
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
Gast #5429956
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
Gast #5429958
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?
Gast #5429964
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!
Gast #5429978
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
Gast #5429987
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.
Gast #5429989
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.
Gast #5429991
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?
Gast #5430012
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.


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:
20
  if (buttonState == HIGH) {
21
    // turn LED on:
22
    digitalWrite(ledPin, HIGH);
23
  } else {
24
    // turn LED off:
25
    digitalWrite(ledPin, LOW);
26
  }
27
}
#5430036
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"
Gast #5430042
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
Gast #5430502
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.
Gast #5430519
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.
Gast #5430692
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren