GBF

Bonsoir,

Je recherche le schéma d'un GBF à base de Picaxe....J'ai fait une recherche sous Google mais je n'ai rien trouvé donc, si vous avez ça sous la main, je suis preneur.

D'avance, merci
 

fuse

Senior Member
Bonjour,
Le plus simple pour réaliser un GBF avec un Picaxe, c'est d'utiliser un réseau R/2R... Il s'agit d'un convertisseur numérique/analogique très simple. Ce réseau de résistances permet d'obtenir une tension représentative de la valeur au niveau du port du pic, si toutes les sorties sont à 0 on obtient 0V, si toutes les sorties sont à 1 on obtient 5V, si on affiche le port à 11110000 on obtient 2,40V etc...
Concernant la partie logicielle, il faut donc enregistrer toutes les valeurs pour effectuer une sinusoïde ou un triangle (ou autre chose) et faire évoluer les valeurs toutes les x millisecondes... pour obtenir différentes fréquences..
Une électronique aussi simple ne supportera pas une charge importante, il sera peut-être nécessaire d'installer un AOP en suiveur. Le réseau R/2R devra être réalisé avec des résistances à 1% pour respecter la linéarité de la conversion (les essais pourront évidemment supporter des résistances classiques).
En tout cas l'idée est là... Bon développement.
Cordialement :)
GBF.jpg
 
Bon et bien, voila déjà une bonne base de travail !!
Comment éviter que le signal de sortie soit crénelé?? Il me semble me souvenir qu'il faut utiliser un condo mais je ne sais plus comment ni le type du condo à utiliser...
 

fuse

Senior Member
Bonjour,
Oui en effet, il faut un filtrage pour éviter les créneaux, celui-ci dépend de la fréquence de sortie...A la louche et pour un Fréquence de quelques Hz, je mettrais 100nF. :confused: Pour un schémas plus complet, il faudrait une recherche d'un GBF basé sur ce principe...
ET puis, il faut produire des points les plus rapprochés les uns des autres, impossible de réaliser une sinusoïde (ou un triangle) avec 5 ou 6 points...
Pour un triangle, il est possible d'effectuer un calcul en augmentant la valeur de 0,01V dans une boucle (puis décrémentation idem). Pour une sinusoïde, il faut utiliser un tableur (ou une calculatrice) pour effectuer le calcul de nombreux points, cette méthode est fastidieuse car elle nécessite l'écriture de plusieurs centaines de valeurs.

Cordialement
 
Last edited:

fuse

Senior Member
Bonjour,
Sans être catégorique, le calcul d'un sinus n'est pas disponible sur la gamme Picaxe de A4. Il existe peut-être des modules d'adaptation permettant d'avoir accès aux calculs mathématiques mais cela augmente le prix du module GBF, il doit être possible aussi d'effectuer un sous-programme capable de traiter la fonction sinus, c'est possible avec des pics normaux (pas de chez picaxe) en intégrant le calcul sous forme de fonction en assembleur.
Effectuer le calcul sinus avec programming editor doit être une belle usine à gaz:eek:, je ne vois pas comment faire :confused:
Dernière solution : programmer une eeprom (24C16 par exemple) avec des données de la sinusoïde, le pic devra lire les valeurs de cette mémoire en utilisant sa liaison i2c : la programmation i2c est assez simple. Ceci étant, cela complique l'ensemble, je pense qu'il faut en rester au mode classique... au moins dans un premier temps.
Cordialement
 

Chavaquiah

Senior Member
le calcul d'un sinus n'est pas disponible sur la gamme Picaxe de A4.
Les Picaxes X1 et X2 ont les fonctions SIN et COS (qui utilisent des tables précalculées).

Effectuer le calcul sinus avec programming editor doit être une belle usine à gaz:eek:, je ne vois pas comment faire :confused:
En effet!

La solution que vous proposez (EEPROM) me semble bien plus sensible.
 

fuse

Senior Member
Bonjour,
Heureusement, j'ai indiqué que je ne suis pas catégorique... En tout cas merci Chavaquiah. Le document Picaxe Manuel2.pdf ne précise pas cette commande,
J'imagine une commande de type
b0 = sin b1 mais dans ce cas là la valeur b1 ne peut pas évoluer en degré (o° à 255°) ? ni en radian?
bref, un petit exemple commenté serait le bienvenu.:)
Cordialement
 

Chavaquiah

Senior Member
L'information est contenue au Manuel 2 mais elle n'est pas du tout facile à trouver. Si je ne savais pas déjà le nom des fonctions je n'aurait pas trouvé.

Voyez, svp, la page 23.

SIN and COS

The sin function returns a number equivalent to the sine of the value in degrees.

The system uses a 45 step lookup table in each quadrant, giving a very fast, and reasonably accurate, result.

The sine function only works on positive whole integers. However as all sin and cos values repeat every 360 degrees, simply add 360 to make a negative value positive. e.g. sin (-30) is the same as sin (330) (-30 + 360)

As the real sine value is always a value between 1 and -1, a coding system is used to increase the accuracy when working with PICAXE whole integers.

The value returned by the sin function is actually 100 x the real sine value. Therefore in normal mathematics sin 30 = 0.5. In PICAXE mathematics this is returned as 50 (100*0.5). This coding method provides a sine function accuracy equivalent to two decimal places.

e.g let b1 = sin 30 (answer b1 = 50)

Negative numbers are indicated by setting bit 7 of the returned byte. This has the effect of making negative values appear as 128 + the expected value.

e.g let b1 = sin 210 (answer b1 = 128+50 = 178)

The cos function operates in an identical manner.
 

fuse

Senior Member
Bonjour,
Merci beaucoup Chavaquiah, voila qui ouvre des perspectives très intéressantes pour la réalisation d'un GBF sinus.
Ce forum est décidément une mine de renseignements. :)
Cordialement
 
Top