ATtiny84 + bluetooth

Bonjour à tous !

Je trouve très très peu d’infos sur l’utilisation de bluetooth avec un attiny84, quelqu’un aurait-il déjà réussi ? (ou échoué…?)

Je voudrais migrer un projet qui fonctionnait parfaitement avec un ATtiny85, mais qui manque de pattes !

Seulement en reprenant le même sketch et un montage très similaire je n’ai aucune réponse :confused:

Si quelqu’un avait des retours, des conseils, je serais très preneur, merci !

-ATtiny84 (burné en 8mHz)
-HC-05 (avec ou sans résistances de pull up)

(Le code ci-dessous, sûrement pas du grand art mais fonctionne sur l’ATiny85 ! )

#include <SoftwareSerial.h> //Software Serial Port

#define TxD 5 //pin 5 de l'ATtiny à relier au pin RXD du module bluetooth (pin5)
#define RxD 6 //pin 6 de l'ATtiny à relier au pin TXD du module bluetooth (pin4)

SoftwareSerial blueToothSerial(RxD, TxD);

int gch = 1;
int drt = 2;
int led2 = 3;
int led = 7 ;

void setup()

{

  pinMode(RxD, INPUT);

  pinMode(TxD, OUTPUT);

  blueToothSerial.begin(9600);

  blueToothSerial.print("Bluetooth connecté !\n");

  delay(1000); 
  pinMode(gch, OUTPUT);
  pinMode(drt, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led, OUTPUT);


//**********Vérification du fonctionnement des pins*************************//
  digitalWrite(gch, HIGH);
  delay(500);
  digitalWrite(gch, LOW);

  digitalWrite(drt, HIGH);
  delay(500);
  digitalWrite(drt, LOW);

  digitalWrite(led2, HIGH);
  delay(500);
  digitalWrite(led2, LOW);


  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
}

void loop()

{

  char recvChar;

  while (1) {

     if (blueToothSerial.available()) {

      recvChar = blueToothSerial.read();

      if (recvChar == 'g') {
        digitalWrite(gch, HIGH);
        digitalWrite(drt, LOW);
      }
      else if (recvChar == 'd') {
        digitalWrite(drt, HIGH);
        digitalWrite(gch, LOW);
      }
      else if (recvChar == 'o') {
        digitalWrite(led2, HIGH);
      }
      else if (recvChar == 'f') {
        digitalWrite(led2, LOW);
      }
      else if (recvChar == 'a') {
        digitalWrite(gch, HIGH);
        digitalWrite(drt, HIGH);
      }
      else if (recvChar == 's') {
        digitalWrite(gch, LOW);
        digitalWrite(drt, LOW);

      }
      else {
        digitalWrite(led, HIGH);
        delay(500);
        digitalWrite(led, LOW);
      }
    }
  }
}

Antttoine:
Bonjour à tous !

Je trouve très très peu d’infos sur l’utilisation de bluetooth avec un attiny84, quelqu’un aurait-il déjà réussi ? (ou échoué…?)

Je voudrais migrer un projet qui fonctionnait parfaitement avec un ATtiny85, mais qui manque de pattes !

Seulement en reprenant le même sketch et un montage très similaire je n’ai aucune réponse :confused:

Si quelqu’un avait des retours, des conseils, je serais très preneur, merci !

-ATtiny84 (burné en 8mHz)
-HC-05 (avec ou sans résistances de pull up)

(Le code ci-dessous, sûrement pas du grand art mais fonctionne sur l’ATiny85 ! )

bonsoir

réponse rapide
Attention avec le software serial sur attiny en clock interne
J’ai déjà eu des “soucis” avec des vitesses software serial “hautes” (et dans l’emulation soft du serial à 9600 c’est déjà haut)

le cadencement théorique à 8MHz est fonction de la calibration de l’oscillateur interne qui est une horloge de type RC multipliée donc de base trés dispersive.

Il existe une possibilité de “calibrer” un peu en jouant avec 1 ou 2 registres , il me semble

A tu déjà de l’activité sur ton pin TX ?
sans matériel de mesure
une led +R suffit déjà à verifier si il y a ou pas de l’activité en sortie (sans la qualifier)

Si oui

Il est possible que l’activité sur ton pin TX soit hors specifs temporelle pour du 9600 et que ton HC05 fasse “un bras d’honneur” à la comm reçue.

tente de passer la discussion en 4800,2400,1200 avec le HC05 juste pour voir déjà si il y a dialogue accepté

Bonjour Antttoine

montage très similaire je n'ai aucune réponse :/

On peut avoir le schéma?

Je voudrais migrer un projet qui fonctionnait parfaitement avec un ATtiny85, mais qui manque de pattes !

A tu utilisé le même HC-05?

Bonjour et merci de vous intéresser à ce petit soucis !

Pour ce qui est de tester le TX avec une LED :

  • le TX du module bluetooth semble fonctionner (la LED, qui allumée en permanence, tressaute chaque fois que j’envoie un message via mon téléphone),
  • le TX de l'ATtiny reste allumé en permanence (enfin la LED), sans tressautements, alors qu'elle n'est pas sensée transmettre de data... peut être est-ce cela confirme ton hypothèse ?

Savoriano, voici un schéma, j'espère qu'il est lisible (note : les LEDs sont en réalités accompagnées d'une résistance), je n'ai pas l'habitude d'en faire !

J'ai utilisé le même HC-05, justement en espérant éviter tout problème

Antttoine: Bonjour et merci de vous intéresser à ce petit soucis !

Pour ce qui est de tester le TX avec une LED : - le TX du module bluetooth semble fonctionner (la LED, qui allumée en permanence, tressaute chaque fois que j’envoie un message via mon téléphone), - le TX de l'ATtiny reste allumé en permanence (enfin la LED), sans tressautements, alors qu'elle n'est pas sensée transmettre de data... peut être est-ce cela confirme ton hypothèse ?

bonsoir Le comportement semble normal pour le TX du HC05 appairé connecté = le TX du HC05 allant vers le RX AT84 (pin 6 )

En toutes théorie tu devrais aussi voir de l'activité sur le TX AT84 (pin5) avec une simple led+R au moins au reset/setup de l'AT84 puisque dans le prog existe cette ligne qui est censée faire une sortie serial sur l'AT84

blueToothSerial.print("Bluetooth connecté !\n");

tu utilise quoi comme portage attiny pour l'IDE arduino ? edit : je me demande si tu n'a pas inversé tout simplement tx/rx au niveau de la definition du software serial je regarderais les parametres de software serial plus tard

Bonsoir !

Bon et bien excellente nouvelle, j'ai repris mon montage tel que je l'avais laissé... Vérifié mes résistances de pull up, et ma 2Ko en faisait en réalité 800, je l'ai remplacée par une qui faisait bien les 2K annoncés

Tout fonctionne plutôt bien (encore un léger problème entre les delays de mon sketch de 500ms et ceux observés en réalité qui sont plus de l'ordre de 2s, mais je vais régler ça)

Ca m'apprendra à acheter des résistances à moins d'1€ les 100 sans les vérifier :$

J'ai un peu honte de vous avoir fait réfléchir sur un problème aussi stupide, alors merci beaucoup !!

Antttoine: Bon et bien excellente nouvelle, j'ai repris mon montage tel que je l'avais laissé... Vérifié mes résistances de pull up, et ma 2Ko en faisait en réalité 800, je l'ai remplacée par une qui faisait bien les 2K annoncés

Ca m'apprendra à acheter des résistances à moins d'1€ les 100 sans les vérifier :$

J'ai un peu honte de vous avoir fait réfléchir sur un problème aussi stupide, alors merci beaucoup !!

:grin:

Si ça peut te rassurer , en DIY , je ne verifie pas mes resistances une à une , pas même en faisant un prélèvement par lot

C'est qqfois le genre de problémes pénibles avec les provenances/sources "exotiques"

Le principal c'est de finir par mettre le doigt sur la cause du probléme , pour que çà finisse par bien tomber en marche ;D

çà fait qq part aussi un peu partie du... jeu 8)