Hallo, ich bin dabei, meinem Sohn ein Nachtlicht zu bauen. Ich verwende dafür ein ATtiny85, den ich mit der Arduino ID programmiere. Gesteuert über einen LDR-Sensor schaltet sich eine rote 3-Watt-LED an, deren Helligkeit über ein Poti gesteuert wird. Auf Knopfdruck wird eine weiße LED - vielleicht auch zwei - geschaltet. Und diese weiße LED macht mir jetzt Kopfzerbrechen. Wenn ich den Knopf drücke, glimmt sie nur leicht, und ich finde nicht heraus, warum. Wenn ich den Sketch per Arduino as ISP aufspiele, leuchtet sie währenddessen sehr hell.
Was mache ich falsch?
Hier die aktuelle Version des Sketches:
const int led = 0;
long levelLED;
const int ledWhite = 2;
int ledWhiteState = LOW;
const int ldr = 3;
long levelLDR;
const int poti = 2;
long levelPoti;
const int button = 1;
int button_state = HIGH;
void setup() {
pinMode(led, OUTPUT);
pinMode(ledWhite, OUTPUT);
pinMode(ldr, INPUT);
pinMode(poti, INPUT);
pinMode(button, INPUT_PULLUP);
}
// TODO: void sensor_levelling()
void ledRedSwitching(){ // TODO: Fade-in
if (levelLDR < 250)
analogWrite(led, levelLED);
else
digitalWrite(led, LOW);
}
void ledWhiteSwitching(){
if (button_state == LOW)
ledWhiteState = !ledWhiteState;
digitalWrite(ledWhite, ledWhiteState);
}
void loop() {
levelPoti = analogRead(poti);
levelLDR = analogRead(ldr);
levelLED = map(levelPoti, 0, 1023, 0, 255);
button_state = digitalRead(button);
ledRedSwitching();
ledWhiteSwitching();
}
HotSystems:
Verstehe ich dich richtig, du schaltest eine 3Watt Led direkt über den ATtiny85 ?
Wie funktioniert das ?
Gute Frage. Ich bekomme gerade Zweifel, dass die LEDs, die mir als 3-Watt-LEDs verkauft wurden, tatsächlich welche sind. Ich habe gerade nachgemessen: Die LED zieht "voll aufgedreht" 18 mA.
po11ux:
Gute Frage. Ich bekomme gerade Zweifel, dass die LEDs, die mir als 3-Watt-LEDs verkauft wurden, tatsächlich welche sind. Ich habe gerade nachgemessen: Die LED zieht "voll aufgedreht" 18 mA.
Du begrenzt ja auch noch mit einem 220 Ohm Widerstand.
Die weiße LED, um die es mir eigentlich geht, zieht nur 67,1µA. Jemand eine Idee, warum? Wie bereits geschrieben: Beim Programmieren leuchtet sie mit voller Stärke.
Das ändert leider auch nichts am Dimmen. Und die LED glimmt nur, während der Taster gehalten wird. Ziel ist, dass sie beim ersten Drücken an- und beim zweiten ausgestellt wird.
po11ux:
Das ändert leider auch nichts am Dimmen. Und die LED glimmt nur, während der Taster gehalten wird. Ziel ist, dass sie beim ersten Drücken an- und beim zweiten ausgestellt wird.
Wieso dimmen ?
Mit dem Taster kannst du nur ein, bzw. ausschalten.
Und das auch nur, wenn du den Pin in den Fuses als normalen Pin definiert hast.
Ohne dies, ist es der Resetpin.
Aber eine Dimmfunktion sehe ich da erstmal nicht.
Viel Erfolg beim Testen
Gruß Peter
und gesund bleiben
Vielen Dank für die Hinweise. Den Pin habe ich auf A2 geändert und jetzt funktioniert es. Die andere Änderung würde aber dazu führen, dass die weißen LEDs nur leuchten, während der Taster gedrückt wird. Das ist nicht mein Ziel. Beim Drücken soll der Status von HIGH nach LOW wechseln und anders herum und dann so bleiben. Das funktioniert mit meinem Code auch ganz gut.