Integer statt Bool?

Hallo Zusammen.
Als ich begann mit Arduino zu Programmieren, wies ich einer LED die Variabel BOOL zu.
Ich bemerkte jedoch rasch, dass das nicht ging. Erst als ich das BOOL in ein INTEGER umschrieb funktionierte es. Meine Frage lautet jetzt, ich habe bei meiner LED nur 1 und 0, warum kann ich dort kein BOOL nehmen?

Programm in vereinfachter Darstellung folgt.

Danke mfg

bool led = 12; // es geht nur wenn statt bool int steht

void setup() {

pinMode(led, OUTPUT);
}

void loop() {

digitalWrite(led, HIGH);
}

Das was du in deinem Sketch zuweist, ist die Pinnummer und die braucht mehr als 1 und 0.
Da muss es min. Byte sein. Int geht aber auch, wie du bemerkt hast.

Bool kann nur 2 Zustände!
True und false

Aber du willst da 12 rein schreiben!

das: bool led = 12;
wird zu: bool led = true;

Du solltest aber
const byte led = 12;
verwenden, o.ä.

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Das kannst Du auch noch nachträglich ändern.

bool led = 12;

Du kannst einer Variablen, die nur 0 oder 1 sein kann keine 12 zuweisen.
Ich vermute, Du meinst damit das Pin, an dem die LED hängt:

const byte ledPin = 12;

Gruß Tommy

bool kann nur 0 oder 1 sein (Die 12 wird zu 1). Das ist für Zustände sehr gut. Für Pin-Nummern ist es natürlich Schwachsinn.

ich habe bei meiner LED nur 1 und 0

An oder Aus vielleicht. Aber nicht Pins

dr_holzknecht:
bool led = 12; // es geht nur wenn statt bool int steht

Ich würde schreiben:

const byte ledpin = 12; // Pin, an dem die LED angeschlossen ist als Konstante
bool ledwert = 0; // Variable 0 oder 1, LOW oder HIGH

digitalWrite(ledpin, ledwert);

Eine LED kann an oder aus sein, da verwendest Du bool. Der Pin hat aber eine Zahl, hier 12, die mehr Bits benötigt.