Traceur et gradateur de LED

Traceur de caractéristiques de LED

La connexion à la carte microcontrôleur se fait en utilisant le schéma ci-contre. Un câble convertisseur TTL / USB assure la liaison sérielle avec le PC.
Le port sériel par défaut est COM6 à 115200 bauds, 8 bits, pas de parité, 1 bit de stop. Le N° du port peut être redéfini dans le logiciel tournant sur le PC.

La carte microcontrôleur est alimentée directement par le câble sériel.
Pour le montage de test de la LED, il faut prévoir une alimentation 9 V.

Le montage de test comportant peu de composants est réalisé sur une plaquette d'expérimentation comme le montre la photo plus haut.

Le programme du traceur de la carte ATM18 est écrit en BASCOM-AVR et convient pour un ATmega 88. Il est facile de le modifier pour un autre microcontrôleur. La version de démo de BASCOM-AVR est suffisante pour compiler le programme car il n'occupe qu'un 1 Ko .

 
' Traceur de courbe pour diode LED
' conception Jean-michel DEFAIS
' JMD jmdefais@wanadoo.fr
' Generation d'un signal PWM sur PB1
' Envoi au terminal de la valeur sur AD7, AD1 et AD0

$regfile = "m88def.dat"
$crystal = 16000000

Baud = 115200
Open "comd.0:115200,8,n,1" For Input As #1
Dim B As Byte
Dim U As Single
Dim A7 As Integer
Dim A0 As Integer
Dim A1 As Integer
Dim Sa As Integer
Dim I As Single
Dim Pwma As Integer

Config Timer1 = Pwm , Prescale = 8 , Pwm = 10 , Compare A Pwm = Clear Down
Config Adc = Single , Prescaler = Auto , Reference = Off    ' Pre 8...32
Start Adc

Do
Pwma = 0
   Get #1 , B                                               'Attend 1 sur terminal pour mesure
   If B = 1 Then
   Do
      Pwma = Pwma + 1
      Pwm1a = Pwma
      If Pwma > 1023 Then Exit Do
      A7 = Getadc(7)
      A7 = A7 * 5
      U = A7 / 1023
      Print U
      Print "A"
      A0 = Getadc(0)
      A1 = Getadc(1)
      Sa = A1 - A0
      Sa = Sa * 5
      I = Sa / 48
      Print I
      Print "B"
   Loop
   End If
Loop
Fichier Intel

Le programme pour PC est réalisé avec Profilab Expert d'Abacom qui permet de créer des instruments de mesure virtuels.
voici un exemple d'affichage d'une courbe ci-dessus. Elle peut être enregistrée, imprimée ou collée dans le presse-papier.
La boite à outil de la barre d'icônes permet aussi d'adapter la configuration à son environnement de PC (Port Com, impression, presse-papier, ...).

Le programme PC
traceur.zip
(2,19 Mo)

Gradateur de LED

Une carte microcontrôleur possède 3 boutons poussoir sur ses entrées : S1, S2, S3 et une LED sur une sortie.
Un appui sur S1 augmente la luminosité de la Led1, un appui sur S2 diminue la luminosité, un appui sur S3 éteint la Led.
Une sortie (PB1) génère une MLI (PWM). L'intensité de la LED dépend de la valeur moyenne.

 

Commander la variation d'une seule LED est d'un intérêt limité. Pour commander des LED haute luminosité blanche, du type Vd = 3,3 V, Id= 20 mA, 10000 mcd, on peut utiliser le schéma ci-contre. Ces LED peuvent prendre place dans un système d'éclairage.
Les diodes peuvent être mises en parallèle. En série on obtient rapidement des tensions trop élevées sur ce type de LED.

La résistance série est à calculer en fonction du nombre de LED en parallèle. Avec une résistance de 100 ohms le courant dans chaque LED est de 20 mA.
Le transistor est obligatoire car la sortie d'un microcontrôleur ne peut fournir les 3 x 20 mA = 60 mA demandé par les 3 LED.

 

Le programme du gradateur de LED de la carte microcontrôleur est écrit en BASCOM-AVR et convient pour un ATmega 88. Il est facile de le modifier pour un autre microcontrôleur. La version de démo de BASCOM-AVR est suffisante pour compiler le programme car il occupe à peine 1 Ko .

 
' Generation d'un signal PWM sur PB1
' conception JMD jmdefais@wanadoo.fr
' S1 relié à PD6
' S2 relié à PD5
' S3 relié à PD7

$regfile = "m88def.dat"
$crystal = 16000000

Baud = 9600


Dim Pwma As Integer
Config Timer1 = Pwm , Prescale = 8 , Pwm = 10 , Compare A Pwm = Clear Down

S1 Alias Pind.6
S2 Alias Pind.5
S3 Alias Pind.7

Config Portd = &B00001100
Portd.6 = 1
Portd.5 = 1
Portd.7 = 1

Dim Pwmold As Integer
Pwma = 0
Do
  If S1 = 0 Then Pwma = Pwma + 1
  If Pwma > 1023 Then Pwma = 1023
  If S2 = 0 Then Pwma = Pwma - 1
  If Pwma < 0 Then Pwma = 0
  If S3 = 0 Then Pwma = 0
  Waitms 20
  Pwm1a = Pwma
  If Pwma <> Pwmold Then
  Print Pwma
  End If
  Pwmold = Pwma
Loop
Fichier Intel