Aller au contenu


Microrupteurman

Inscrit(e) (le) 04 oct. 2011
Déconnecté Dernière activité juin 05 2021 11:44
*****

Sujets que j'ai initiés

[Résolu] Programme mal exécuté sur ATtinyX5

12 septembre 2020 - 01:53

Salut,

 

Voila mon souci:

J'ai créé un programme pour ATtiny25/45/85 mais celui ci ne fonctionne pas dessus.

Par contre, ce meme programme sur une Mega tourne comme prévus..

 

Programme ATtiny :

#define PinFan 4    // Pin ventilateur
#define PinLed 0    // Pin led

float resistance;     // Valeur de la resistance ajustable
int valbrute;   // Valeur LM35
float temperatureC;   // Valeur ajusté en °c
int blinktime;      // Compteur de clignotement
int lastdelay;      // Compteur de temps de clignotment


void setup() {

  pinMode (PinFan, OUTPUT);
  pinMode (PinLed, OUTPUT);
}


void loop() {
  
      // Acquisition de la temperature
  valbrute = analogRead (A0);        
  temperatureC = valbrute * (5.09/1023.0*100.0);
  
      // Acquisition de la valeur de la resistance variable
 resistance = analogRead (A3);
 resistance = resistance / 10.23 ;
 

  TempDisplay();  // Execute TempDisplay

  
  if (temperatureC >= resistance)   // Controle automatique du ventilateur
  { digitalWrite (PinFan, HIGH);  }
  
  else
  { digitalWrite (PinFan, LOW);   }
  
  delay(15000-lastdelay);
  lastdelay = 0 ;
}


void TempDisplay () {               // Affichage de la temperature par 10° par clignotement de led
  blinktime = temperatureC / 10 ;

  while (blinktime >= 1)
  { digitalWrite(PinLed,HIGH);
  delay(500);
  digitalWrite(PinLed, LOW);
  delay(500);
  lastdelay = lastdelay + 1000;
  --blinktime;
  }
  
}


Programme Mega:

#define PinFan 4    // Pin ventilateur
#define PinLed 2    // Pin led

float resistance;     // Valeur de la resistance ajustable
int valbrute;   // Valeur LM35
float temperatureC;   // Valeur ajusté en °c
int blinktime;      // Compteur de clignotement
int lastdelay;      // Compteur de temps de clignotment


void setup() {
Serial.begin(9600);
  pinMode (PinFan, OUTPUT);
  pinMode (PinLed, OUTPUT);
}


void loop() {
  
      // Acquisition de la temperature
  valbrute = analogRead (A0);        
  temperatureC = valbrute * (5.09/1023.0*100.0);
  
      // Acquisition de la valeur de la resistance variable
 resistance = analogRead (A3);
 resistance = resistance / 10.23 ;

Serial.print("Temp=");
Serial.println(temperatureC);
delay(500);
Serial.print("Resistance=");
Serial.println(resistance);
delay(500);


  TempDisplay();  // Execute TempDisplay

  
Serial.print("Lastdelay=");
Serial.println(lastdelay);
delay(500);
  
  if (temperatureC >= resistance)   // Controle automatique du ventilateur
  { digitalWrite (PinFan, HIGH);
  Serial.println("Fan On");
delay(500);}
  
  else
  { digitalWrite (PinFan, LOW); 
  Serial.println("Fan OFF");
delay(500);  }
  
  delay(15000-lastdelay);
  lastdelay = 0 ;
}


void TempDisplay () {               // Affichage de la temperature par 10° par clignotement de led
  blinktime = temperatureC / 10 ;

  while (blinktime >= 1)
  { digitalWrite(PinLed,HIGH);
  delay(500);
  digitalWrite(PinLed, LOW);
  delay(500);
  lastdelay = lastdelay + 1000;
  --blinktime;
  }

}

Sortie moniteur série Mega :

 

Fichier joint  moniteur.JPG   37,96 Ko   36 téléchargement(s)

 

J'ai tester d'autre sortie analogique sur l'ATiny pour le capteur de t°, mais ça ne change rien.

La led devant indiqué la temperature (un on/off par 10°c) clignote bien, mais plus de fois qu normalement possible. Le max possible est de 10 (100°/10=10) mais elle clignote jusqu'à 23 fois !

 

Merci pour votre aide ;)

 

 

 

 


Generer un PWM de 20khz sur un ATtiny25/45/85

14 août 2020 - 08:47

Hello, 

 

Le but de cette fréquence est de rendre inaudible le son du pwm dans les moteurs.La fréquence n'est pas choisis au hasard, c'est la fréquence max à partir de laquelle on n'entend plus le son et la fréquence max que je peut balancer dans mon pont en H est 25khz.

 

Pour cela, il faut changer la fréquence du timer/counter 1

Page 89 https://ww1.microchi...5_Datasheet.pdf

 

Les sources qui m'aide à faire le réglage :

https://www.electros...-using-arduino/

https://forum.arduin...?topic=174349.0

http://www.technoblogy.com/show?QVN

 

Pour avoir cette fréquence pwm de 20khz, il faut utilisé un mode asynchrone cadencé à 60Mhz, directement sélectionnable dans l'IDE Arduino. Ensuite il faut divisé cette fréquence par 16 comme indiqué dans le tableau de la datasheet page 88. J'ai fini par en déduire cette ligne "TCCR1=TCCR1 & 0b11110101 | 0x01; ". Cela dit, autant je peut comprendre la première partie (avant | ) autant l'autre...... Et ensuite il faut définir la valeur de OCR1C à 199 est là aucune idée de comment procédé. 

Peut être faut il changer 0x01 par 0xC7 (199 en hexa) ?

 

OCR1C gère OC1a (pb1) et OC1b (pb4) ( () = sortie )

 

C'est très compliqué pour moi, d'autant que tout est en anglais ! Et de plus, pour validé ou invalidé, je n'est que tinkercad, mais il ne semble pas prendre en compte la modification des registres...

 


Piloter les leds IR via GPIO

19 juin 2020 - 02:52

Piloter les leds IR via GPIO

 

 

Une petite modif s'impose.

 

 

Dessouder la photorésistance

 

Fichier joint  IMG_20200619_160250.jpg   59,99 Ko   50 téléchargement(s)

 

Souder une resistance de 4.7k derriere le circuit, sur le trou indiqué "+"

(c'est une sécurité, ce n'est pas obligatoire)

 

Fichier joint  IMG_20200619_160409.jpg   55,49 Ko   53 téléchargement(s)Fichier joint  IMG_20200619_160419.jpg   59,2 Ko   59 téléchargement(s)

 

Puis, souder le cable qui ira sur la GPIO

 

Fichier joint  IMG_20200619_160741.jpg   46,41 Ko   59 téléchargement(s)

 

Coté VIGIBOT

 

Mettre en mode 2 les interrupteur 0 et 1, et décocher la case "INV" pour avoir ceci :

 

Fichier joint  led.JPG   77,63 Ko   59 téléchargement(s)

 

 

Connecter les deux fils de commande sur les GPIO concerné, 16 et 17 par défaut :

 

Fichier joint  PinoutRaspberry-1.jpeg   86,14 Ko   59 téléchargement(s)

 

Vous pouvez désormais piloter les leds via le site en cliquant sur les deux icones de led


Modification leds IR en leds blanches

17 juin 2020 - 02:09

Modification leds IR en leds blanches

 

Fichier joint  IMG_20200616_203635.jpg   18,13 Ko   58 téléchargement(s)

 

 

Il suffit de dessoudé la led IR et de la remplacer par cette led 1w https://fr.aliexpres....c0752e0elEUHHz

 

1. Reliez ensemble les 2 broches de la photo à l'aide d'un petit fil. Utilisez une loupe et un flux de soudure. ( Permet d'avoir avoir une tension de 3.3v  dans la led, bypass du régulateur 2.5v, désactive également la protection de surchauffe)

 

Fichier joint  IMG_20200616_222553.jpg   66,33 Ko   55 téléchargement(s)

2. Dessoudez et pliez les deux broches de la LED IR

3. Retournez le module et chauffez le pad central à l'arrière pour dessouder le boîtier LED IR. Utilisez une pince à épiler pour tirer doucement sur le boîtier LED IR.

4. Ajouter un peu de flux sur le pad central avant

5. Placez une nouvelle LED et soudez les deux broches de la nouvelle LED au module

6. Chauffer le pad central à l'arrière pour souder le nouveau boîtier LED au coussin central avant. (max 5 s)

 

 

 

 

Merci à Firened pour ce hack :)


Pièces utiles pour Vigibot / Useful parts for Vigibot

01 juin 2020 - 09:59

Regroupement des pièces utiles pour Vigibot
 
Testé et approuvé !
 
Merci de mettre vos propositions ci dessous, j’éditerai ce message pour les ajouter.
 
Amplificateur Audio :
Amplificateur Audio 5V PAM8403
https://www.robot-ma...dio-5v-420.html
Fichier joint  amp.JPG   25,41 Ko   55 téléchargement(s)
 
Camera :
Caméra Raspberry Pi fish eye grand angle jour et nuit :
https://www.robot-ma...rry-pi-311.html
Fichier joint  camera-raspberry-pi.jpg   20,47 Ko   59 téléchargement(s)
 
Clé 4G:
Clé 4G huawei E3372 avec antennes
https://fr.aliexpres....27426c379T79Pb
Fichier joint  clé.JPG   16,61 Ko   76 téléchargement(s)
 
Driver de moteur cc :
TB6612FNG :
https://www.robot-ma...612fng-314.html
Fichier joint  tb.JPG   24 Ko   57 téléchargement(s)
 
Gyrophare miniature :
https://a.aliexpress.com/_dZswTH0
Fichier joint  gyro.JPG   21,21 Ko   60 téléchargement(s)
 
Micro :
Micro USB Orange
https://fr.aliexpres....4f566c37cF5K5f
Fichier joint  micro.JPG   47,23 Ko   60 téléchargement(s)
 
Servomoteur 9g 270° :
https://www.robot-ma...9g-270-370.html
Fichier joint  sg90270.JPG   16,97 Ko   62 téléchargement(s)
Pignons métal:
https://a.aliexpress.com/_d6LhPNC
Fichier joint  sg90m.JPG   27,35 Ko   60 téléchargement(s)

 

Voltmètre miniature :

https://fr.aliexpres....27426c371uEQa6

 

Fichier joint  volt.JPG   36,63 Ko   50 téléchargement(s)

 

 

GPS Beitian BN220 :

https://amzn.to/2TheKwC

Fichier joint  gps.JPG   35,15 Ko   34 téléchargement(s)

 

Lidar :

https://amzn.to/36kOaJE