attiny84 RC5

bonjour,
ça na pas mis longtemps pour que je revienne sur le forum

je tente de faire afficher sur un lcd le code venant d'une telecommande RC5

la compilation me donne plein d'erreurs
y a certainement quelque chose que je n'ai pas compris dans la programmation par arduino pour un attiny

voici mon code :

#include <LiquidCrystal.h>
#include <IRremote.h>
LiquidCrystal lcd(5, 6, 7, 8, 9, 10); // déclare une variable LiquidCrystal appelée lcd 
// mode 4 bits et RW pas utilisé
int RECV_PIN = 2;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    lcd.print(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
}

J'ai essayé d'adapter la librairie IRremote pour un attiny85 (en programmant par ISP avec arduino) et je réussis à compiler sans erreur mais je n'arrive pas à obtenir des résultats valides.
Pour pouvoir compiler il faut modifier les fichiers de la librairie pour qu'ils soient compatibles avec ton attiny. Cela veut dire qu'il faut modifier le nom des registres ainsi que parfois leur valeur. Les noms de registres sont parfois différents entre arduino et attiny. En outre, la réception IR est basée sur un timing qui dépend de la fréquence de la clock de ton microcontroller. Il faut donc également modifier cela si besoin est.
Même si je peux compiler sans erreurs, comme je le disais, il reste que je n'arrive pas à obtenir des résultats valides.
Du coup j'ai programmé mon décodeur IR de remote moi-même. C'est très simple en fait, il suffit de "regarder" à interval régulier la valeur du pin connecté à ton récepteur IR et de déterminer la longueur des pulses hauts et des pulses bas (perso, je n'utilise que les longueurs des pulses haut). Chaque bouton de la remote va donner des séquences différentes (en terme de longueur des pulses hauts et bas). En analysant ces séquences tu as ton décodeur.
Pour décoder et analyser les séquences, je te conseille d'utiliser le serial monitor d'arduino (en utilisant la librairie SoftwareSerial) pour regarder ce que tu obtiens sur l'attiny.
A ce propos, je n'ai pas réussi à lire les données séries en connectant l'attiny sur le port série de ma board arduino. Pour pouvoir lire les données série j'ai utilisé un FTDI (FT232R). Dans ce cas, je communique sans problème jusqu'à 57600bauds.
Si quelqu'un sait pourquoi ça ne marche pas avec la board arduino, je serai content de le savoir !

Hello,
je suis personnellement en train de tenter d'utiliser la librairie SofwareSerial avec un Attiny 45, sans succès pour l'instant... Le céréale moniteur reste désespérément muet. Je connecte l'Attiny au PC avec un USB BUB ( http://jeelabs.com/products/usb-bub ).
Peut-on utiliser n'importe quelle broche pour le TX/RX ?
Doit-on connecter la pin reset ?
Pensez vous qu'il y a autre chose que j'aurais pu oublier?

Merci d'avance.
Jacques.

A priori, n'importe quel pin est OK vu que tout se fait par software.
A noter que SoftwareSerial ne fonctionne que si la clock de l'Attiny est à 8MHz, ce qui n'est pas la valeur par défaut (qui est de 1MHz).
Il suffit de charger le bootloader 8MHz à partir de l'IDE arduino (en utilisant une carte arduino pour programmeur ISP).
Pas besoin de connecter le pin RESET. Pour écouter, juste TX et la masse.

Merci beaucoup, je vais essayer. Je pensai qu'on ne chargeait pas de bootloader dans un attiny (programmation direct par ISP).

En fait quand je dis bootloader, c'est par rapport à ce qui est inscrit dans l'IDE arduino.
Il s'agit en fait d'écrire les "fuses".

Je comprend, mais quand je tente cette manipulation j’obtiens le message d'erreur suivant :

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45

C'est tout à fait normal. Ces deux lignes apparaissent tout le temps. Elles n'ont aucune influence.
Si aucun autre message apparait c'est que tout va bien!