Forum: Mikrocontroller und Digitale Elektronik Arduino Problem: analogWrite() ATtiny


von marcel (Gast)


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

von Max H. (hartl192)


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);

: Bearbeitet durch User
von marcel (Gast)


Lesenswert?

Danke für deine Rückmeldung und Bemühungen, aber beim Tiny85 sind die 
PWM Pins 0 und 1. Oder sehe ich das falsch?

Viele Grüsse

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.