Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Horloge 60 leds , qui prend ce sujet
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#61 Message par venom » mar. 16 oct. 2018 22:32

Oui le module s'appelle hc-sr04

J'en ai reçu mais pas encore jouer avec.





@++
Mon site web
Mon discord : venom#4888

Horloge 60 leds , qui prend ce sujet
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#62 Message par Gérard » mer. 17 oct. 2018 08:26

Vous avez raison, c'est en US que ça fonctionne pas en IR.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Horloge 60 leds , qui prend ce sujet
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2586
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#63 Message par paulfjujo » mer. 17 oct. 2018 09:46

Gérard a écrit :Vous avez raison, c'est en US que ça fonctionne pas en IR.


bien que les 2 systemes existent sur des robots
ce modele ?
HC-SR04 U.S .
ou
I.R. modules sharp analogiques avec cible possible bien plus petite qu'en U.S. et plus precis sur de courte distance


Gerard, tu peux eventuellement ouvrir un nouveau fil dans la section projets ?
.
Aide toi, le ciel ou FantasPic t'aidera

Horloge 60 leds , qui prend ce sujet
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#64 Message par Gérard » mer. 17 oct. 2018 14:20

Paul, tu as raison, ici, on doit parler de l'horloge avec contour de LED.
J'ai ouvert une discussion ici.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Horloge 60 leds , qui prend ce sujet
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2586
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#65 Message par paulfjujo » mer. 10 avr. 2019 12:11

bonjour à tous,

j'ai reçu mon anneau 60 leds RGB WS2812 ...
et un peu décu par son mode de commande asynchrone sur 1 seul fil ..

mais ça marche quand meme au prix d'un calibrage precis pour "fabriquer" les bits de commande 1 ou 0
il faut un MCU pouvant tourner à 64MHz
j'ai pris mon modele preféré : le PIC18F26K22 Fosc interne 16Mhz x PLL => 64MHz
1 cycle en 0,0625µS ou 62,5nS

J'ai vu qu'il existait une solution via l'uart à 800.000bds !
en CCS
#use rs232(stream=LED_STREAM, baud=8000000, xmit=PIN_C6, rcv=PIN_C7,bits=8,parity=N,stop=0,ERRORS,INVERT)
en programmant l'UART en 8 bits SANS STOP, NI PARITE ..
:!!: là je ne vois pas comment c'est possible d'enlever le STOP .. et quid du START ?

sous mikroC , apparament on ne peut pas supprimer le stop
en assembleur , je ne vois pas comment non plus ?
Que disent les specialistes ASM ?


les états UN ou ZERo etant definis comme suit :
en envoyant
#define HI_BIT 192 // 0b11000000
#define LOW_BIT 252 // 0b11111100
pour respecter les durees ON/OFF qui represente un bit

Pour faire mon test ,
:sifflotte: j'ai utilisé la methode de facilité:
une methode directe ASM bit Bang ( incorporation d'ASM dans du C)
avec un nombre de NOP (=1 cycle de 62,5nS) pour determiner les durées ON/OFF pour Bit=1 (ONES) et bit=0 (ZEROS)
Mon analyser logique SQA50 m'a été TRES UTILES pour cela.
voir diagrammes..
Details sur ma page web

il en resulte une commande assez facile de cet anneau , mais qui mobilise à 100% le CPU .. pendant l'envoi de la commande
( 1728 µS pour les 60 leds)
pour éteindre l'anneau, il faut envoyer 1440 BYTES ! avec des ZEROS , j'ai bien dit BYTES (et non vrai bit )
le bit WS812 etant codé sur 8 bits.. oops compliqué Hein ?
:cry: cà c'est pas bien !

j'ai essayé aussi le SPI Hardware ...(SPI biblio MC)
mais je me retrouve avec un GAP temporel de 2,6µS entre chaque envoi de byte (representant un bit )
et je ne vois pas d'ou vient ce GAP ?
la duree d'un bit ne devant pas depasser 1,8µS .. :furieux: CA NE VAS PAS non plu.

Pourtant un registre à decalage HARDWARE comme l'UART ou SSP1BUF me paraitrait assez approprié pour faire
les basses besognes, soulager le MCU , via interruption ! .. en ASM ?
le passage dans une interruption prend pas mal de temps aussi, quand on raisonne en cycles ..
ALLER dans l'IT ..traitement .. RETOUR d'IT ( si sauvegarde de l'environnement)

avec un envoi de simili bit par SSP1BUF on pourrait esperer gagner 8x1,25µS = 10 µS
mais 10µS - duree globale traitement IT = > quelques µS dispo pour le MCU

Pour la suite de L'HORLOGE :
si je n'utilise pas 7 afficheurs segments HH MM SS multiplexés pour afficher l'heure
au milieu de l'anneau , ça devrait gazer , même en mode bit bang ASM .
Je compte donc utiliser
soit 6 afficheurs 7 seg 1" , pilotés par un MAX7219
soit 4 matrices 8x8 MAX7129 mais avec seulement HH MM
pas assez de place pour 6 matrices HH MM SS
ou mettre les SS dessous.





je vous invite donc à cogiter la dessus et m'apporter des idées ,astuces, trucs, .... (voir dictionnaire pour synonymes)

[b] video [/ b]
Aide toi, le ciel ou FantasPic t'aidera

Horloge 60 leds , qui prend ce sujet
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2585
Enregistré en : juillet 2016
Localisation : Terre

#66 Message par Temps-x » mer. 10 avr. 2019 13:42

Bonjour paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message :!!: là je ne vois pas comment c'est possible d'enlever le STOP .. et quid du START ?

sous mikroC , apparament on ne peut pas supprimer le stop
en assembleur , je ne vois pas comment non plus ?
Que disent les specialistes ASM ?


Ben, il faut faire ton propre protocole, comme l'explique Bigonof, sans passer par ce que possède ton Pic, un peu dommage. :cry:

idea ! Ou d'utiliser un circuit spécialisé, qui serait piloter par ton pic, ça lui permettrais de faire autre chose.

ça sens l'horloge RGB

==> A++
Modifié en dernier par Temps-x le mer. 10 avr. 2019 15:17, modifié 2 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Horloge 60 leds , qui prend ce sujet
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 68
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#67 Message par Claudius » mer. 10 avr. 2019 14:31

Bonjour,
paulfjujo a écrit :
... en programmant l'UART en 8 bits SANS STOP, NI PARITE ..
:!!: là je ne vois pas comment c'est possible d'enlever le STOP .. et quid du START ?

sous mikroC , apparament on ne peut pas supprimer le stop
en assembleur , je ne vois pas comment non plus ?
Que disent les specialistes ASM ?

Temps-x a écrit :
Ben, il faut faire ton propre protocole...

Le START et le STOP (1 ou 2 bits) est inhérent au protocole UART, donc impossibilté de supprimer l'un et/ou l'autre si on passe par un contrôleur ou une pile logicielle qui respecte la norme ;-)

Maintenant, comme proposé par Temps-x, c'est possible en codant en assembleur ce protocole UART hors norme mais quid de la vitesse ...
Va falloir une bête de course et faire les calculs à l'instruction près pour atteindre les vitesses de 8 000 000 bauds soit 8 MBits/Sec qui est supérieur à la capacité d'un bus SPI considéré comme très rapide

Autre solution: Adjoindre un sérialisateur hard qui prendrait 8 bits en entrée // et les enverrait en série à la vitesse souhaitée (je n'ai pas fais les calculs si vraiment pertinent)

:idea: Cf. également une solution type bridge comme le MAX3107 - SPI/I²C UART with 128-Word FIFOs qui, sauf erreur de ma part, peut travailler à plus de 20 MBits/Sec :wink:

Sinon, très intéressant comme problématique :geek:

Horloge 60 leds , qui prend ce sujet
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2586
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#68 Message par paulfjujo » mer. 10 avr. 2019 15:14

Temps-x a écrit :Ben, il faut faire ton propre protocole, comme l'explique Bigonof, sans passer par ce que possède ton Pic, un peu dommage. :cry:


oops , donc autant rester en bit bang .

Claudius a écrit :Le START et le STOP (1 ou 2 bits) est inhérent au protocole UART, donc impossibilté de supprimer l'un et/ou l'autre si on passe par un contrôleur ou une pile logicielle qui respecte la norme ;-)


c'est bien ce qui me parait bizarre avec l'usage sous CCS ..( que j n'ai pas testé, étant sous MikroC)

#fuses INTRC_IO,NOPROTECT,NOPLLEN,NOBROWNOUT,NOLVP,NOWDT
#use delay(clock=64000000)
#use rs232(stream=LED_STREAM, baud=8000000, xmit=PIN_C6, rcv=PIN_C7,bits=8,parity=N,stop=0,ERRORS,INVERT)
#define NUM_LEDS 24
#define HI_BIT 192 // 0b11000000
#define LOW_BIT 252 // 0b11111100


reste à voir si avec cette solution CAPILOTRACTEE , et un protocole WS2812 mal respecté
cela puisse "tomber en marche "
Le calibre temporel des bits étant à +-150nS .

idea !
a voir, je vais essayer ça:
Pic 18 Asynchronous mode large range speed:
Assume BRG16=1, BRGH =0
FOSC/[16 (n + 1)]
Fosc Bauds SPBRG Calculé Ecart
64000000 1228800 4 800000 -34.90%
... à suivre


in fine, si je gere l'affichage des HH MM avec un MAX7219 , ou 4 matrice 8x8
j'aurais tout le temps necessaire
pour parcourir de 1 à 60 leds de l'anneau , à chaque seconde ..
Aide toi, le ciel ou FantasPic t'aidera

Horloge 60 leds , qui prend ce sujet
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#69 Message par Gérard » mer. 10 avr. 2019 16:20

Bonjour à tous,
Perso je préfère les LED pilotées par des WS2801. Il n'y a pas ce soucis de timing.
Par contre, je ne sais pas si elles existent en anneau comme tes LED.

Une idée ici

Ici, les LED sont par 50, il en faut 10 de plus pour faire les 60 secondes. Le diamètre est de 8mm.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Horloge 60 leds , qui prend ce sujet
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2586
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#70 Message par paulfjujo » mer. 10 avr. 2019 21:10

bonsoir,

Gérard a écrit :Bonjour à tous,
Perso je préfère les LED pilotées par des WS2801. Il n'y a pas ce soucis de timing.
Par contre, je ne sais pas si elles existent en anneau comme tes LED.

Une idée ici

Ici, les LED sont par 50, il en faut 10 de plus pour faire les 60 secondes. Le diamètre est de 8mm.


Ca existe en 60 leds par M, mais le probleme c'est qu'elles ne sont pas , A PLAT, comme sur l'anneau
Ca se pilote effectivement en mode synchrone avec un CLOCK et un CS, comme le ruban 32leds que j'avais préalablement testé.

Par contre me payer un cablage de 60 leds , que nenni, j'ai deja donné sur ma precedente horloge AT89C251
60+32= 92 leds en cablage ..et filasse consequente.
l'anneau : déja precablé sur circuit imprimé ..

en attendant, il faut que je renverse mon affichage MAtrice leds de 90° ( de mon journal defilant 8 Matrices VIEUX modele)..
pour les matrices nouveau modele à connections laterales ..
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités