De plus, cet exercice m'aidera à mieux comprendre la transmission de bit et l'auto synchronisation des bits.
Picaxe a laire quand même simple, entre un language basic et dérivé de C++. Mais je ne connais pas encore sa mécanique, donc quelque piste devrait m'aider!
Si le but c'est d'apprendre, commencez par une liaison cuivre de quelques mètres.
Un Picaxe à chaque bout :
- dans le premier, vous lisez votre ADC et vous envoyez les données, pas trop vite au début
- dans le deuxième, vous lisez et affichez pour contrôle soit sur un terminal série, soit sur un LCD.
Alors mon objectif serait de justement lire une valeur sur ADC du picaxe, ensuite convertir la valeur en binaire et par la suite prendre chaque valeur (01001110) et les transmettres par impulsion lumineuse. De lautre côté avec mon autre microcontrolleur je vais interprêter ces impulisons et recomposer le code binaire pour ensuite, avec un calcule redonner la valeur decimal.
Dès que vous avez exécuté un READADC ou un READADC10, vous disposez d'une représentation binaire de la tension mesurée.
Un simple SEROUT va convertir cette valeur binaire en une série d'impulsions électriques (suivant le protocole RS232).
Ces impulsions peuvent être lues par un SERIN (sur un autre Picaxe directement raccordé en cuivre) qui va en déduire la valeur binaire correspondante.
Je pense qu'il y a confusion entre "valeur binaire" et "valeur décimale"...
Dans un Picaxe, toutes les valeurs sont "binaires" au sens où elles sont composées d'une série de bits (8 ou 16 en l’occurrence)
C'est seulement la représentation de ces valeurs qui peut changer :
Si dans la mémoire du Picaxe, il y a 4 portes logiques avec les tensions : 5V 0V, 5V et 0V
on peut représenter ça en binaire sous la forme 1010
mais c'est aussi le nombre 10 (en base 10) ou A (en base 16)
ou bien le caractère N°10 de la table ASCII
Tout ceci n'est que de l'interprétation : la réalité physique ne change pas.
Envoyer une valeur sur un fil de cuivre, ce n'est pas autre chose que d'envoyer des bits successifs, et donc en réalité physique des tensions comparables à celles stockées en mémoire... 5V pendant X ms, puis 0V pendant X ms, etc...
Une fois ça pigé et maîtrisé, remplacer le fil de cuivre par une fibre optique est un détail de l'histoire.
Cela dit, je pense comme PieM que pour une liaison de 1km, même en pleine forêt, même avec du relief, un émetteur radio serait bien plus simple à mettre en oeuvre !
Un module LORA est donné pour 20 km. Ce n'est évidement pas garanti vu que nous ne connaissons pas votre contexte, mais ça devrait le faire !
Une fibre, c'est fragile ! Vous comptez l'enterrer ? Sinon, une branche ou un caillou tomber dessus, un animal se prendre les pattes dedans, et les rongeurs adorent boulotter le plastique...
Si j'ai bien compris, le volume de données à transmettre est très faible : vous pouvez donc utiliser une fréquence assez basse, qui sera très pénétrante.
Par ailleurs, le nombre de bits par seconde peut être très faible, et donc l'émission très fiable, ce qui n'empêche pas d'utiliser un code pour détecter les erreurs.
Pour info, les pompiers communiquent sur des dizaines de km, y compris en pleine forêt. La bande utilisée est le 40mHz, mais il faut disposer des autorisations ad hoc...
Au pire, si vous ne pouvez utiliser les bonnes fréquences, on peut imaginer des bonds plus courts avec un ou plusieurs relais intermédiaires.
Sur ce contrôlleur je n'ais pas de port UART, rs232 485 etc... seulement i2c et spi.
Elle est bien bonne ! C'est quoi ce contrôleur manchot ?