Arduino Problem: analogWrite() ATtiny

Gast #3565946
Lesenswert?

Hallo Zusammen

Ich versuche ein IR Empfänger für meine LED Lampe zu machen.
Auf einem ATtiny85 kommt es zu komischen Problemen...


Wenn ich
1
void setup() {                
2
  pinMode(led, OUTPUT);     
3
}
4
void loop() {
5
  analogWrite(led, 10);
6
}

Schreibe funktioniert alles wie es sollte. Aber wenn ich in meinem Code 
die selbe Funktion, analogWrite() benutze funktioniert diese einfach 
nicht....

Hat jemand eine Idee warum dies nicht funktioniert?

1
#include <IRremote.h>
2

3
int RECV_PIN = 3;
4
IRrecv irrecv(RECV_PIN);
5
decode_results results;
6

7
int ledLevel = 10;
8
int optokoppler = 0;
9

10
boolean up=true;
11

12
void setup()                    
13
{
14
  //Serial.begin(9600);
15
  pinMode(optokoppler, OUTPUT);
16
  irrecv.enableIRIn(); // Start the receiver
17
}
18

19
void loop()                    
20
{
21
  if (irrecv.decode(&results)) {
22
    if(results.value == 2011259093){
23
      ledLevel++;
24
      up = true;
25
    }
26
    if(results.value == 2011271381){
27
      ledLevel--;
28
      up = false;
29
    }
30
    if(results.value == 4294967295){
31
      if(up)ledLevel++;
32
      if(!up)ledLevel--;
33
    }
34
    irrecv.resume();
35
  }
36

37
  // ########## Min Max definieren
38
  if(ledLevel<1)ledLevel=0;
39
  if(ledLevel>26)ledLevel=26;   // 255-25.5= 229 => 10% Helligkeit, 10% ist min vom Schaltregler
40

41
  //pwm_out_korrigiert(ledLevel, ledLevel);
42

43
  //digitalWrite(optokoppler, HIGH);
44
  analogWrite(optokoppler, 30);
45
  delay(1000);
46
  digitalWrite(optokoppler, LOW);
47
  delay(1000);
48
}
49

50

51
void pwm_out_korrigiert(int Pin, int Wert){
52
  int HelligkeitAugeTabelle[26] = {
53
    195,191,187,183,
54
    179,174,170,166,
55
    161,157,152,147,
56
    142,136,130,124,
57
    117,109,100,91,
58
    80,67,52,34,
59
    14,0  };
60
  analogWrite(Pin, HelligkeitAugeTabelle[Wert]);
61
}

Vielen Dank für eure inputs
#3565954
Lesenswert?

http://arduino.cc/de/Reference/AnalogWrite schrieb:
> Bei den meisten Arduino-Boards (diejenigen mit einem ATmega168
> oder ATmega328) ist das mit den Pins 3, 5, 6, 9, 10, und 11 möglich;
> bei einem Arduino-Mega sind das die Pins 2 bis 13. Bei älteren Arduino-
> Boardsmit einem ATmega8 wird analogWrite() an den Pins 9, 10, and 11
> unterstützt.

marcel schrieb:
> int optokoppler = 0;
> [...]
>   analogWrite(optokoppler, 30);

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