Ich bin Softwareentwickler und versuche zu verstehen, wie Computer auf einer niedrigeren Ebene funktionieren.
Ich habe den Arduino Uno Microcontroller gekauft und alle Tutorials von LadyAda befolgt.
Ich habe festgestellt, dass die LED (nicht die Power-LED) immer eingeschaltet ist, es sei denn, sie blinkt, selbst wenn ich das folgende Programm bereitstelle, das den Speicher löscht und die LED ausschalten sollte:
#include <EEPROM.h>
void setup()
{
// write a 0 to all 512 bytes of the EEPROM
for (int i = 0; i < 512; i++)
EEPROM.write(i, 0);
// turn the LED on when we're done
digitalWrite(13, LOW);
}
void loop()
{
}
Warum leuchtet die LED immer? Ich habe dies gegoogelt und ein paar ähnliche Fragen in einem anderen Forum wie diesem gelesen , aber ich habe noch keine Antwort gefunden.
Ich glaube, Ihr Problem ist, dass Sie diesen Pin nicht als Ausgang festlegen. Verwenden Sie pinMode(13, OUTPUT)
diese Option, um Pin 13 als digitalen Ausgang zu konfigurieren. Da GPIO-Pins als Ein- oder Ausgänge verwendet werden können, müssen Sie dem Mikrocontroller mitteilen, auf welchen Modus dieser Pin eingestellt werden muss.
#include <EEPROM.h>
int led = 13;
// the setup routine runs once when you press reset:
void setup()
{
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
// write a 0 to all 512 bytes of the EEPROM
for (int i = 0; i < 512; i++)
EEPROM.write(i, 0);
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
}
void loop()
{
}
Sie können das grundlegende Hallo-Welt-Beispiel hier sehen , das über das Blinken der Pin-13-LED hinausgeht.
Außerdem sollten Sie beim Schreiben in das EEPROM vorsichtig sein, da es, wie in den Kommentaren erwähnt, nur eine Lebensdauer von ~ 100.000 Zyklen hat.
digitalWrite(led, HIGH)
oder hast du benutzt digitalWrite(led, LOW)
?Niemand hat die Frage wirklich beantwortet. Warum erlischt die LED nur, wenn Pin 13 bei Digital Write LOW auf OUTPUT gesetzt wird? Sicher, ich verstehe, dass im INPUT-PULLUP-Modus über einen Pull-up-Widerstand Spannung an den Pin angelegt wird, wodurch die LED theoretisch schwach leuchten kann. Aber die Realität ist, dass die LED hell leuchtet, wenn Pin 13 ein INPUT ist, niedrig oder hoch. Wenn Pin 13 auf INPUT/LOW gesetzt ist (was die Standardeinstellung beim Einschalten ist), woher kommen die Spannung und der Strom, um die LED anzusteuern? Und wagen Sie es nicht, wieder über den Pull-up-Widerstand zu quatschen. Wie gesagt, die LED ist hell, egal ob Pin 13 INPUT-LOW oder INPUT-HIGH ist.
Es scheint, dass der UNO r3 anders funktioniert als frühere Versionen. REF-Schema: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf Pin 13 ist ein Eingang für einen Operationsverstärker. Wenn an Pin 13 eine Spannung anliegt, passt der Operationsverstärker diese Spannung an seinem Ausgang an, die die LED ansteuert. Da INPUT-Pins eine hohe Impedanz haben, schwebt ihre Spannung ohne einen Pull-Down-Widerstand, oder vielleicht gibt es eine winzige Leckage vom Mikrocontroller und ohne einen Pull-Down-Widerstand liegt Spannung am Pin an. Operationsverstärkereingänge haben eine theoretische unendliche Impedanz.
Dies ist eine Designverbesserung. Mit der alten Version konnte Pin 13 nicht als INPUT-PULLUP verwendet werden, da die Spannung nur 1,7 V betragen würde, da die LED den Strom abführt, der durch den Pull-up-Widerstand kommt. Mit dem UNO R3 wird der Operationsverstärker den Pull-up-Strom nicht ableiten, sodass wir Pin 13 als INPUT_PULL-UP festlegen können. Der Pro-mini hat jedoch noch das alte Design, und wenn Sie Pin 13 als INPUT-PULLUP verwenden möchten, müssen Sie den Widerstand von der Platine schnippen.
Jeder, der Probleme mit L (Pin 13) auf Ihrem Arduino Uno hat, fügen Sie diesen Code so wie er ist auf einem leeren Bildschirm im IDE-Fenster ein. Es wird das Problem lösen.
const int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led,LOW);
}
Hoffe das hilft :)
Phil Frost
Jippie
Jippie
for
Schleife, fügen Sie a hinzupinmode(13,OUTPUT);
w0051977
w0051977
Phil Frost
Jippie
Jippie
File => Examples => 01.Basics => Blink
und arbeiten Sie von dort aus, um das Verhalten der LED zu ändern.Garret Fogerlie
w0051977
Phil Frost
Garret Fogerlie