INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programm läuft auf UNO aber nicht auf ATTINY85
08.12.2019, 11:19
Beitrag #9
RE: Programm läuft auf UNO aber nicht auf ATTINY85
So

ich habe jetzt den Aufbau in der Richtung geändert, das der Kondensator (22uF) und der Widerstand(330Ohm) in der Spannungsversorgung des TSOP liegen wie im Schaltplan.

Auf dem UNO funktioniert das Programm wie gehabt problemlos. Auf dem TINY werden die Signal des TSOP leider immer noch ignoriert. Was mir allerdings aufgefallen ist, das wenn ich manchmal mehrfach die die Taste "1" der Fernbedienung drücke die LED ausgeht. Also scheint dann "irgend etwas" anzukommen.
Kann es sein das der Tiny mit unsigned long Probleme hat?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2019, 11:26
Beitrag #10
RE: Programm läuft auf UNO aber nicht auf ATTINY85
Hallo,
den Wert des Widerstandes und Kondensator hat Michael ja schon genannt.
Das ist rel. unkritisch. Es kann natürlich auch ohne die funktionieren, man sollte sich aber schon an die Datenblätter halten.

Und das mit dem "Bootloader" hatte ich ja schon geschrieben. Der muss drauf, damit der ATtiny85 weiß, mit welcher Frequenz er arbeiten soll. Das ist kein echter Bootloader, sondern nur ein setze der Parameter, auch Fuses genannt.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2019, 11:42 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2019 11:51 von Diwo13.)
Beitrag #11
RE: Programm läuft auf UNO aber nicht auf ATTINY85
(08.12.2019 11:26)hotsystems schrieb:  Und das mit dem "Bootloader" hatte ich ja schon geschrieben. Der muss drauf, damit der ATtiny85 weiß, mit welcher Frequenz er arbeiten soll. Das ist kein echter Bootloader, sondern nur ein setze der Parameter, auch Fuses genannt.

Habe ich den Bootloader gebrannt, indem ich in der Arduino IDE den Menüpunkt Bootloader brennen angewählt habe ?
Vorher natürlich 8MHz internal ausgewählt !

EDIT: Ich programmiere den ATTINY85 mit dem UNO und "Arduinio as ISP"
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2019, 11:51
Beitrag #12
RE: Programm läuft auf UNO aber nicht auf ATTINY85
(08.12.2019 11:42)Diwo13 schrieb:  Habe ich den Bootloader gebrannt, indem ich in der Arduino IDE den Menüpunkt Bootloader brennen angewählt habe ?
Vorher natürlich 8MHz internal ausgewählt !

Sobald der fehlerfrei durchläuft, ja.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2019, 12:01 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2019 12:05 von Diwo13.)
Beitrag #13
RE: Programm läuft auf UNO aber nicht auf ATTINY85
So

ich bin jetzt einen Schritt weiter -glaube ich-

Ich habe den Bootloader "16MHz internal" gebrannt (arduino IDE)
Danach den Sketch hochgeladen.

Jetzt kann ich über die Fernbedienung EIN und AUS schalten. Mehrfach. Problemlos.

Drücke ich aber doppelt auf die EIN-Taste was ja eine andere Codierung hat, scheint sich der ATTINY aufzuhängen. Danach geht nichts mehr. Kein EINschalten und kein AUSschalten. Bis ich den ATTINY von der Versorgungsspannung trenne und neu starte.

EDIT: versuche ich zuviele Timer zu benutzen durch PWM und Zufallswerte und delay?

Ich hänge den Sketch nochmal an:
Code:
/*
EIN     4946DC6F (HEX) / 1229380719
AUS     20A43156 / 547631446
blinken 8E02813B / 2382528827
*/

#include <IRremote.h>

int LED1 = 0;       //ATTINY 0 / UNO 6
int LED2 = 1;       //ATTINY 1 / UNO 6
int RECV_PIN = 2;   //ATTINY 2 / UNO 8

IRrecv irrecv(RECV_PIN);
decode_results results;

unsigned long test;
int zufall1;
int zufall2;

void setup()
{
  //Serial.begin(9600);
  irrecv.enableIRIn();                                // Start the receiver
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(RECV_PIN, INPUT);
  
  digitalWrite(LED1, HIGH);                           // LED beim Einschalten der Spannung einschalten
  digitalWrite(LED2, HIGH);                           // LED beim Einschalten der Spannung einschalten
}

void loop() {  
  if(irrecv.decode(&results))
  {
   test = (results.value);
   irrecv.resume();                                   // Receive the next value
  }
  
  if (test == 547631446){   //einfacher Tatsendruck auf "0" für AUS
    digitalWrite(LED1, LOW);
    digitalWrite(LED2, LOW);
    //Serial.println("aus");
  }
  
  if (test == 1229380719){                              //einfacher Tastendruck auf "1" für Dauerleuchten          
    digitalWrite(LED1, HIGH);
    digitalWrite(LED2, HIGH);
    //Serial.println("ein");
  }
  
  if (test == 2382528827){                              //zweifacher Tastendruck auf "1" für flackern
    
    zufall1 = random(50, 200);
    zufall2 = random(100, 255);
    
    //Serial.println("blinken");
    
    analogWrite(LED1, 255);
    analogWrite(LED2, 255);
    
    delay(zufall1/2);
    
    analogWrite(LED1, zufall2);
    analogWrite(LED2, zufall2);
    
    delay(90);    
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2019, 12:07
Beitrag #14
RE: Programm läuft auf UNO aber nicht auf ATTINY85
OK, das ist doch schon mal einen Schritt weiter, obwohl es auch mit 8MHz funktionieren muss.

Was das doppelte Drücken auf der FB angeht, habe ich keine Erfahrung, da musst du einfach experimentieren.

Mein Tipp wäre hier, die Funktion "Switch/Case" zu verwenden. Die setze ich auch immer in diesen Anwendungen ein, da die besser zu durchschauen sind.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2019, 13:11
Beitrag #15
RE: Programm läuft auf UNO aber nicht auf ATTINY85
Hallo Dieter

nachdem alles nicht so gut klappt habe ich Deinen Tipp befolgt und auf Switch/Case geändert.
Das Ergebnis ist im Prinzip das Gleich wie mit meinen IFs. Aber ordentlicher sieht es tatsächlich aus. Danke für den Hinweis Cool

Also wieder auf 16MHz geflasht und zusätzlich habe ich das flackern mit Zufallszahlen rausgenommen und schalte die LED in diesem CASE nur mit den delay(3000) Ein und Aus.

Wobei das keine 3 Sekunden sind sondern ein ganz schnelles flackern Huh hat das mit den 16MHz zu tun?

Aber kleiner Erfolg. Er erkennt die 3 unterschiedlichen Signale, die die Fernbedienung aussendet.

Die FB sendet folgende Signal:
EIN 4946DC6F / 1229380719 (Taste 1)
AUS 20A43156 / 547631446 (Taste 0)
blinken 8E02813B / 2382528827 (Taste 1 zweimal schnell hintereinander drücken)

Wobei das vordere der HEX Wert ist, und das hintere der Wert mit dem ich hier arbeite

Code:
/*
EIN     4946DC6F / 1229380719
AUS     20A43156 / 547631446
blinken 8E02813B / 2382528827
*/

#include <IRremote.h>

int LED1 = 0;       //ATTINY 0 / UNO 5
int LED2 = 1;       //ATTINY 1 / UNO 6
int RECV_PIN = 2;   //ATTINY 2 / UNO 8

IRrecv irrecv(RECV_PIN);
decode_results results;

unsigned long IRSignal;
int zufall1;

void setup()
{
  //Serial.begin(9600);
  irrecv.enableIRIn();                                // Start the receiver
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(RECV_PIN, INPUT);
  
  digitalWrite(LED1, HIGH);                           // LED beim Einschalten der Spannung einschalten
  digitalWrite(LED2, HIGH);                           // LED beim Einschalten der Spannung einschalten
}

void loop() {  
  if(irrecv.decode(&results))
  {
   IRSignal = (results.value);
   irrecv.resume();                                   // Receive the next value
  }

switch (IRSignal) {
  case 547631446:                          //einfacher Tatsendruck auf "0" für AUS
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      //Serial.println("aus");
    break;
  case 1229380719:                           //einfacher Tastendruck auf "1" für Dauerleuchten  
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      //Serial.println("ein");
    break;
  case 2382528827:                          //doppelter Tastendruck aus "1" für flackern
      digitalWrite(LED1, HIGH);
      delay(3000);
      digitalWrite(LED1, LOW);
      delay(3000);

  
      /*zufall1 = random(50, 200);
      //Serial.println("blinken");
    
      analogWrite(LED1, 255);
      analogWrite(LED2, 255);
    
      delay(zufall1/2);
    
      analogWrite(LED1, zufall1);
      analogWrite(LED2, zufall1);
    
      delay(90);  */
    break;
  
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2019, 13:52
Beitrag #16
RE: Programm läuft auf UNO aber nicht auf ATTINY85
Hallo,
das mit den nacheinander folgenden Codes hat folgenden Hintergrund:
Einmal drücken kommt der erste Code zum tragen, länger drücken, kommt zusätzlich der zweite Code und soll je nach Anwendung z.B. eine Lampe dimmen.
Ich würde das in deinem Fall auch so auswerten.

Was die geflashte Frequenz betrifft, musst du mal mit einem einfachen Blinksketch prüfen, ob tatsächlich 1sek. eingehalten wird. Es ist immer wichtig, wenn du den 16MHz Bootloader drauf hast, auch mit 16 MHz zu flashen, genauso auch mit anderen Taktfrequenzen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Uno startet nicht j.klomfass 4 183 Gestern 10:09
Letzter Beitrag: j.klomfass
  Arduino Programm funktioniert auf nano nicht Arduino DMX Master 10 428 15.06.2020 13:07
Letzter Beitrag: Arduino DMX Master
  DMX Addresirung funktionirert nicht Arduino DMX Master 24 791 14.06.2020 15:38
Letzter Beitrag: Tommy56
  Arduino IDE läuft nicht mehr Rainer2 12 726 10.06.2020 12:04
Letzter Beitrag: Tommy56
  Arduino Programm Geht nicht mehr auf Arduino DMX Master 2 332 09.06.2020 20:13
Letzter Beitrag: Arduino DMX Master
  4 Zeilen im Display Modul 0.69" IIC I2C, aber wie? Christian_Moba-Arduino 7 391 17.05.2020 13:12
Letzter Beitrag: Christian_Moba-Arduino
  strcmp funktioniert nicht richtig Cano 7 509 25.04.2020 10:47
Letzter Beitrag: Cano
  SoftwareSerial.h und SD.h vertragen sich nicht sowerum 25 1.396 25.04.2020 10:46
Letzter Beitrag: hotsystems
  Morse Programm Didi_0 14 1.139 04.04.2020 21:13
Letzter Beitrag: ardu_arne
  Sketch für WS2812 klappt nicht ThorstenP 9 693 02.04.2020 14:50
Letzter Beitrag: ThorstenP

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste