Forum: Mikrocontroller und Digitale Elektronik Simulation Arduino Uno-9 in SimulIDE 1.1.0-SR2 at Rev 260312


von Peter (david_h88)


Angehängte Dateien:

Lesenswert?

Hey Leute,

ich möchte in dem Programm SimulIDE, eine LED mit Hilfe eines Arduino 
Uno zum Blinken bringen. Dazu habe ich an Ausgangspin 2 des Arduino die 
LED mit Vorwiderstand von 200OHm angeschlossen, und diese Leitung 
abschließend geerdet. Ich habe in der Arduino IDE Version 2.3.8 den 
Code:

void setup() {
  // put your setup code here, to run once:
  pinMode(2,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(2,HIGH);
  delay(1000);
  digitalWrite(2,LOW);
  delay(1000);
}

geschrieben und nach rechten Mausklick auf den Arduino unter dem Reiter 
mega328-109-> Eigenschaften -> Firmware das entsprechende Hexfile in den 
Microcontroller geladen. Die Firmware wurde auch erfolgreich geladen 
(Nachricht: "Firmware successfully loaded"), trotzdem blinkt die LED 
beim Starten der Simulation nicht. Auch ein Drehen der LED um 180° 
gedreht und Variieren der Vorwärtsspannung hat keinen Effekt erzielt. 
Gibt es vielleicht noch andere Parameter zu beachten? Vielen Dank für 
eure Hilfe!
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

a) In SimulIDE gibt es auch ein Oszilloskop. Check' erstmal, ob der Pin 
wirklich sein Potenzial wechselt.

b) bau' in den Loop eine Ausgabe (Serial/Terminal) ein, die je nach 
Schaltvorgang "ein" und "aus" ausgibt

c) Schalte die LED mal mit der Anode gegen Plus. In der Realität kann 
ein Arduino-Pin mehr Srom aufnehmen als abgeben ... vielleicht hilft es.
von Wastl (hartundweichware)


Lesenswert?

Peter schrieb:
> Dazu habe ich an Ausgangspin 2 des Arduino die
> LED mit Vorwiderstand von 200OHm angeschlossen, und diese Leitung
> abschließend geerdet.

Da muss man wohl den Arduino auch noch erden.
von Wastl (hartundweichware)


Lesenswert?

Wastl schrieb:
> Da muss man wohl den Arduino auch noch erden.

... oder die LED an den GND Pin des Arduino anschliessen.
von Peter (david_h88)


Lesenswert?

Vielen Dank für eure schnell Hilfe. Ich habe die LED mit den Gnd-Pin des 
Arduino verbunden und ein Oszilloskop angeschlossen. Darin war zu 
erkennen, dass der Spannungswert des Pin 2 immer zwischen 5V und 0V 
toggelt. Ich habe auch nochmal die LED um 180° mehrfach gedreht, um die 
Anode mit Plus zu verbinden. Trotzdem blinkt die LED nicht? Mein Code 
mit der Ausgabe von "Ein" bzw. "Aus" sieht jetzt wie folgt aus:

void setup() {
  // put your setup code here, to run once:
  pinMode(2,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(2,HIGH);
  Serial.print("Ein");
  delay(1000);
  digitalWrite(2,LOW);
  Serial.print("Aus");
  delay(1000);
}

Muss darin noch eine Library eingebunden werden, um die Augabe über das 
Konsolenfenster zu ermöglichen? Vor "Firmware successfully loaded" 
erscheint immer die Meldung  "Extended Linear Address: 0x0" im 
Konsolenfenster.
von Peter (david_h88)


Angehängte Dateien:

Lesenswert?

Die jeweilige Schaltung jetzt
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Könnte es sein, dass der von dir verwendete Pin 2 nicht für eine 
(binäre) Ausgabe geeignet ist?

Probier mal andere, z.B. die 8, 9 oder 10 ...
von Frank O. (frank_o)


Angehängte Dateien:

Lesenswert?

Ich habe das mal eben installiert und bei mir läuft es.

Zunächst habe ich die Led an Pin 13 aktiviert. Danach an Pin4
Und noch an Pin2, aber andersrum schaltend.
1
void setup() {
2
  // put your setup code here, to run once:
3
  pinMode(4,OUTPUT);
4
  pinMode(2,OUTPUT);
5
  pinMode(LED_BUILTIN, OUTPUT);
6
  Serial.begin(9600);
7
}
8
9
void loop() {
10
  // put your main code here, to run repeatedly:
11
  digitalWrite(4,HIGH);
12
  digitalWrite(2,LOW);
13
  digitalWrite(LED_BUILTIN, HIGH);  // change state of the LED by setting the pin to the HIGH voltage level
14
  delay(1000);                     
15
  Serial.print("Ein");
16
  delay(1000);
17
  digitalWrite(4,LOW);
18
  digitalWrite(2,HIGH);
19
  digitalWrite(LED_BUILTIN, LOW);  // change state of the LED by setting the pin to the HIGH voltage level
20
  delay(1000);                     
21
  Serial.print("Aus");
22
  delay(1000);
23
}
: Bearbeitet durch User
von Peter (david_h88)


Lesenswert?

Vielen Dank :). Einfach nochmal neu abgespeichert und dann hat es 
funktioniert.
von Wastl (hartundweichware)


Lesenswert?

Frank O. schrieb:
> Ich habe das mal eben installiert und bei mir läuft es.

Tolle Simulator-Software ... wo der LED-Strom ins Nirwana fliesst,
bzw. fliessen kann.
von Frank O. (frank_o)


Lesenswert?

Wastl schrieb:
> Tolle Simulator-Software ... wo der LED-Strom ins Nirwana fliesst,
> bzw. fliessen kann.

Ich habe das nur installiert, weil ich das nicht kannte, das Problem 
lösen und helfen wollte.
Bei den Leds kannst du unter Einstellungen den Minus dazu schalten.
Sieht blöd aus, aber für so eine Simulation doch in Ordnung.
Ich persönlich würde in so einer Simulation nur einen Vorteil sehen, 
wenn ich darus direkt alles in einen Schaltplan und noch besser,  auch 
gleich in eine Platine umwandeln könnte.
So sehe ich das lieber auf dem Steckbrett.
LTSpice finde ich gut, um grundsätzliche Probleme zu lösen.
Aber wenn du meckern willst, ich bin nur der Helfer und unschuldig. 
Dann bitte beim TO.
von Wastl (hartundweichware)


Lesenswert?

Frank O. schrieb:
> Aber wenn du meckern willst, ich bin nur der Helfer und unschuldig.

Die Meckerei war nicht auf dich gemünzt, sondern - klar lesbar -
auf die Software. Du bist in meinem Beitrag mit keinem Wort erwähnt.
von Frank O. (frank_o)


Lesenswert?

Wastl schrieb:
> Die Meckerei war nicht auf dich gemünzt

Ok!
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Wastl schrieb:

> Tolle Simulator-Software ... wo der LED-Strom ins Nirwana fliesst,
> bzw. fliessen kann.

Jepp, das fand ich auch sehr komisch. Wenn ich daran denke, wie z.B. 
LTSpice freidreht, wenn man da mal eine Signalverbindung vergisst...
von Rainer W. (rawi)


Lesenswert?

Frank E. schrieb:
> In der Realität kann ein Arduino-Pin mehr Srom aufnehmen als abgeben

In der Realität weiß so ein ATmega328 gar nicht, dass er in einem 
Arduino gelandet ist. ;-)

Außerdem ist der Unterschied nicht wirklich so dramatisch.
Für den ATmega328P mit 5V Versorgung bei einer Temperatur von 25°C 
beträgt der Unterschied der Ausgangsimpedanz etwa 10%, mit 3V immer noch 
unter 20%.
: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

was im Arduino Forum auch gern genommen wird ist https://wokwi.com/
von Frank O. (frank_o)


Lesenswert?

Rainer W. schrieb:
> In der Realität weiß so ein ATmega328 gar nicht, dass er in einem
> Arduino gelandet ist. ;-)

😄😄😄
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.