Simulation Arduino Uno-9 in SimulIDE 1.1.0-SR2 at Rev 260312

OP #8050623
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!

Angehängte Dateien:
(Firma: Q3) #8050625
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.

OP #8050675
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.

#8050781
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
}
Angehängte Dateien:
: Bearbeitet durch User
#8051004
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.

#8051108
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

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