Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Page 8 sur 8 PremièrePremière 8
Affichage des résultats 106 à 116 sur 116

Contrôleur moteur 12v

  1. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 835

    Re : Contrôleur moteur 12v

    Bonjour,

    Après le schéma, voici le typon:

    mazdaV2.JPG

    Il est prévu un connecteur pour la capsule piezzo, mais on peut souder directement ou ne pas s'en servir du tout.

    Le fichier .tci correspondant est dans le zip en P.J.

    MM

    -----

    Fichiers attachés
    Dernière modification par mag1 ; 13/01/2018 à 15h22.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     


    • Publicité



  2. Ghashog Delta

    Date d'inscription
    décembre 2017
    Âge
    26
    Messages
    49

    Re : Contrôleur moteur 12v

    Super je vais refaire une commande pour le typon et on rebranchera le fer à souder !!!
     

  3. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 835

    Re : Contrôleur moteur 12v

    Citation Envoyé par Ghashog Delta Voir le message
    Super je vais refaire une commande pour le typon et on rebranchera le fer à souder !!!
    Bonjour,

    Voici le code de la version finale V2.

    Les commentaires ont été mis à jour, la consommation du système en sommeil, contact coupé, est maintenant aux environs de 25µA, tout compris. C'est à dire pas grand chose pour une batterie de 70Ah.

    Les constantes sont regroupées dans la rubrique "nomination et fixation des constantes", en plus des positions, le temps de fonctionnement max du moteur, en demi secondes : maxtime=6. Que l'on peut modifier éventuellement.

    Code:
    ;mazda MM 12/01/2018
    ;modif protection par tmax et conso éco
    #picaxe 14M2
    ;***  nomination ports et variables ******************
    symbol tilt=pinC.0		;poussoir tilt
    symbol onoff=pinC.1		;poussoir on/off
    symbol contact=pinC.3	;entrée contact
    symbol L293=B.2			;alim L293
    symbol potar=C.4			;entrée ADC capteur
    symbol leve=B.1			;sortie moteur lever
    symbol baisse=B.4			;sortie moteur baisser
    symbol buzz=B.5			;sortie buzzer
    symbol flag=bit0			;flag enregistrement on/off
    symbol pos=b1				;position sélectionnée,0=entré , 1=pos1, 2=pos2, 3=pos3
    symbol memopos=b2			;mémo position pour onoff
    symbol posact=b3			;position actuelle
    symbol poscapt=w13		;valeur actuelle capteur
    symbol posfin=w12			;valeur position recherchée
    ;*** nomination et fixation constantes *****************
    symbol posoff=10		;valeur capteur pos rentré
    symbol pos1=513
    symbol pos2=592		;valeur position n°2
    symbol pos3=648
    symbol pos4=675
    symbol maxtime=6 		;3s à 32MHz, pas time=0,5s
    ;*** initialisation ************* 
    	dirsB=%11111111		;portsB en sorties
     	pullup %11100000000	;pullup sur C.0 à C.2
    	memopos=1
    	posact=0 
    	low B.3					;inutilisé
    	low leve :low baisse	;confirmation arrêt moteur 
    	high L293				;coupure 5v L293
    	disablebod				;déactivation surveillance alim
    	do 						;µC en sommeil 25µA env
    		sleep 2				;réveil pour test toutes les 4,5s env
    	loop while contact=0	;tant que contact off	
    	enablebod
    	setfreq M32				;fréquence à 32MHz	
    	low L293					;alim 5v L293	
    	read 0,pos				;lecture position mémorisée
    	if pos <>0 then 	gosub mouv	;si pos non rentrée, on bouge
    	setint or %00, %11	;interruption sur onpff et tilt (C.0 ou C.1)
    ;****** boucle principale ************
    	do 			
    		if pos<>posact then gosub mouv	;suite changement pos sur interrupt,on bouge
    		if flag=1 then gosub M_A			;demande on/off sur interrupt	
    		if contact=0 then	 gosub repos	;détection coupure contact
    	loop
    ;** sous programmes   ********************************************
    M_A:					;sub poussoir onoff
    	if pos=0 then 	;il est rentré,on le sort
    		pos=memopos		
    	else				;il est sorti		
    		memopos=pos
    		pos=0			;on le rentre
    	endif		
    	gosub mouv:		;activation moteur
    	flag=0			;raz flag
    	return
    
    repos:				;arret sur coupure contact	
    	pause 5000		;gelai 1,25 s
    	if contact=1 then		;confirmation (test inutile?)
    		return				;non confirmé
    	endif
    	write 0,pos		;mémo position	
    	pos=0				;position rentré
    	readadc10 potar,poscapt					;si non rentré
    	if poscapt > posoff then gosub mouv	;on le rentre	
    	reset											;réinitialisation -> sleep
    
    mouv:			;sub mouvement
    	lookup pos,(posoff,pos1,pos2,pos3,pos4),posfin	;valeur capteur ft position
    	if poscapt>posfin then				; on est au dessus, 
    		 high	baisse  						;on baisse
    		time=0
    		do 			
    			readadc10 potar,poscapt		;valeurs de 0 à 1023								
    		loop while poscapt > posfin and time < maxtime	;jusqu'à position finale ou + de xs
    		low baisse							;arrêt moteur
    		goto fin								;on sort
    	elseif poscapt < posfin then		;on est en dessous, on lève
    		high leve
    		time=0
    		do 			
    			readadc10 potar,poscapt				
    		loop while poscapt < posfin and time < maxtime
    			low leve
    	else										;autres cas, 
    			low leve : low baisse		; tout arrêt (on sait jamais...)
    	endif
    fin:	
    		if time >= maxtime then 		;trop long ->blocage
    			setfreq M16						;passage momentanné en 16MHz
    			sound buzz,(114,40)			
    			sound buzz,(113,40)			
    			sound buzz,(112,40)
    			setfreq M32
    		endif
    		posact=pos		;mémorisation nouvelle position
    		return
    		
    interrupt:				;sub interruption sur C.O ou C.1
    	if tilt=0 and pos<>0 then		;action sur tilt
    		inc pos			;incrémentation position
    		if pos>=5 then	;boucle sur 4   positions
    			 pos=1
    		endif
    	endif
    	if onoff=0 then	;action sur onoff
    		 flag=1			;marque passage
    	endif
    	do loop while tilt=0 or onoff=0	;attente fin de condition interruption
    	setint or %00, %11		;réarmement interruption
    	return
    Le projet conforme au CdC est terminé (Y a pas un truc à ajouter ?)
    Bonne fin de bricolage

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     

  4. Ghashog Delta

    Date d'inscription
    décembre 2017
    Âge
    26
    Messages
    49

    Re : Contrôleur moteur 12v

    Bonjour Mag1,

    oui merci, avec une conso en veille comme ça c'est sûr qu'elle pourra dormir un hiver complet sans problème ^^.
    Je mes le code de coté, pour le buzzer ça m’intéresse pas de trop... Mais peux-ton le remplacer par une LED ?
    Pour le cahier des charges je dis 20/20. Même pour ce qui est de ton aide c'est génial, n'étant pas du métier je me sent un poil inutile...

    Petite info : en fait je n'ai plus le GPS d'origine ( trop vieux et plus de MAJ) du coup j'ai intégré une tablette Nexus 7 wifi qui en plus d'avoir un GPS toujours à jour me permet d'avoir un lecteur MP3, connexion internet (suivant le réseau téléphonique...).
    Pour ce qui est de l'alimentation j'ai intégrer un chargeur USB avec un inter cacher dans le cendrier. Pareil la tablette étant planqué dans le tableau de bord, je n'ai plus accès aux différent bouton. J'ai donc modifier le kernel de la tablette pour qu'elle s'allume lorsque elle est alimentée.
    J'ai aussi connecté un cable OTG en Y pour pouvoir transférer des données avec une clé USB mais ça ne fonctionne pas.... Mais ça c'est une autre histoire...

    voili voilou !!!
     

  5. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 835

    Re : Contrôleur moteur 12v

    Bonjour,

    On peut remplacer le buzzer par une led, mais c'est moins efficace, il faut avoir l’œil dessus.
    On peut aussi se passer d'alarme, je ne sais même pas si il y a une possibilité de blocage par un objet ou autre. Mais au delà de maxtime, le moteur est coupé, c'est l'essentiel.
    Pour la led, c'est comme tu veux, clignotante ?, fixe ?, qui s'éteint quand ? Au choix.

    La partie à modifier est ici:
    if time >= maxtime then ;trop long ->blocage
    setfreq M16 ;passage momentanné en 16MHz
    sound buzz,(114,40)
    sound buzz,(113,40) ;petite musiquette fréquences décroissantes
    sound buzz,(112,40)
    setfreq M32
    endif

    MM
    Dernière modification par mag1 ; 16/01/2018 à 10h05.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     


    • Publicité



  6. Ghashog Delta

    Date d'inscription
    décembre 2017
    Âge
    26
    Messages
    49

    Re : Contrôleur moteur 12v

    Sur le carter qui entoure l'écran j'ai une petite fenêtre teinté comme pour le récepteur infrarouge d'une télé. je peux placer la LED à cette endroit pour la voir clignoter.
    Clignotante quand il y a blocage serait parfait.
    Je ne pense pas qu'il y aura un blocage un jour vu qu'il n'y a plus rien qui traîne dans le boiter, mais par sécurité autant en mettre une.
     

  7. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 835

    Re : Contrôleur moteur 12v

    Citation Envoyé par Ghashog Delta Voir le message
    Clignotante quand il y a blocage serait parfait.
    Ok, il faut dans ce cas ajouter une R de limitation de courant de 330 ohm. Si il est trop tard pour modifier le typon, on peut quand même l'ajouter , juste une coupure de piste à faire.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     

  8. Ghashog Delta

    Date d'inscription
    décembre 2017
    Âge
    26
    Messages
    49

    Re : Contrôleur moteur 12v

    Pour l'instant bxtronics ne répond pas donc on peut toujours faire une modif
     

  9. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 835

    Re : Contrôleur moteur 12v

    Voici le typon modifié.
    Mais il serait possible de couper la piste au cutter et de placer cette 330 en retournant le connecteur (si il y a connecteur) ou de remplacer ce connecteur par des picots mâle/femelle moins encombrants.

    mazda V22.JPG

    Le zip:
    Fichiers attachés
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     

  10. Ghashog Delta

    Date d'inscription
    décembre 2017
    Âge
    26
    Messages
    49

    Re : Contrôleur moteur 12v

    Par chance j'ai retrouvé une 330 Ohm ( orange orange marron) dans mon stock ^^
     

  11. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 835

    Re : Contrôleur moteur 12v

    Voici le code, avec led, trois fois 1s espacés de 0.5 s, mais à adapter si besoin:

    Code:
    ;mazda MM 16/01/2018
    ;modif protection par tmax et conso éco, led
    #picaxe 14M2
    ;***  nomination ports et variables ******************
    symbol tilt=pinC.0		;poussoir tilt
    symbol onoff=pinC.1		;poussoir on/off
    symbol contact=pinC.3	;entrée contact
    symbol L293=B.2			;alim L293
    symbol potar=C.4			;entrée ADC capteur
    symbol leve=B.1			;sortie moteur lever
    symbol baisse=B.4			;sortie moteur baisser
    symbol alarm=B.5			;sortie buzzer
    symbol flag=bit0			;flag enregistrement on/off
    symbol pos=b1				;position sélectionnée,0=entré , 1=pos1, 2=pos2, 3=pos3
    symbol memopos=b2			;mémo position pour onoff
    symbol posact=b3			;position actuelle
    symbol poscapt=w13		;valeur actuelle capteur
    symbol posfin=w12			;valeur position recherchée
    ;*** nomination et fixation constantes *****************
    symbol posoff=10		;valeur capteur pos rentré
    symbol pos1=513
    symbol pos2=592		;valeur position n°2
    symbol pos3=648
    symbol pos4=675
    symbol maxtime=6 		;3s à 32MHz, pas time=0,5s
    ;*** initialisation ************* 
    	dirsB=%11111111		;portsB en sorties
     	pullup %11100000000	;pullup sur C.0 à C.2
    	memopos=1
    	posact=0 
    	low B.3					;inutilisé
    	low leve :low baisse	;confirmation arrêt moteur 
    	high L293				;coupure 5v L293
    	disablebod				;déactivation surveillance alim
    	do 						;µC en sommeil 25µA env
    		sleep 2				;réveil pour test toutes les 4,5s env
    	loop while contact=0	;tant que contact off	
    	enablebod
    	setfreq M32				;fréquence à 32MHz	
    	low L293					;alim 5v L293	
    	read 0,pos				;lecture position mémorisée
    	if pos <>0 then 	gosub mouv	;si pos non rentrée, on bouge
    	setint or %00, %11	;interruption sur onpff et tilt (C.0 ou C.1)
    ;****** boucle principale ************
    	do 			
    		if pos<>posact then gosub mouv	;suite changement pos sur interrupt,on bouge
    		if flag=1 then gosub M_A			;demande on/off sur interrupt	
    		if contact=0 then	 gosub repos	;détection coupure contact
    	loop
    ;** sous programmes   ********************************************
    M_A:					;sub poussoir onoff
    	if pos=0 then 	;il est rentré,on le sort
    		pos=memopos		
    	else				;il est sorti		
    		memopos=pos
    		pos=0			;on le rentre
    	endif		
    	gosub mouv:		;activation moteur
    	flag=0			;raz flag
    	return
    
    repos:				;arret sur coupure contact	
    	pause 5000		;gelai 1,25 s
    	if contact=1 then		;confirmation (test inutile?)
    		return				;non confirmé
    	endif
    	write 0,pos		;mémo position	
    	pos=0				;position rentré
    	readadc10 potar,poscapt					;si non rentré
    	if poscapt > posoff then gosub mouv	;on le rentre	
    	reset											;réinitialisation -> sleep
    
    mouv:			;sub mouvement
    	lookup pos,(posoff,pos1,pos2,pos3,pos4),posfin	;valeur capteur ft position
    	if poscapt>posfin then				; on est au dessus, 
    		 high	baisse  						;on baisse
    		time=0
    		do 			
    			readadc10 potar,poscapt		;valeurs de 0 à 1023								
    		loop while poscapt > posfin and time < maxtime	;jusqu'à position finale ou + de xs
    		low baisse							;arrêt moteur
    		goto fin								;on sort
    	elseif poscapt < posfin then		;on est en dessous, on lève
    		high leve
    		time=0
    		do 			
    			readadc10 potar,poscapt				
    		loop while poscapt < posfin and time < maxtime
    			low leve
    	else										;autres cas, 
    			low leve : low baisse		; tout arrêt (on sait jamais...)
    	endif
    fin:	
    		if time >= maxtime then 		;trop long ->blocage
    			high alarm
    			pause 8000		;1s à 32MHz
    			low alarm
    			pause 4000		;trois clignotements 
    			high alarm
    			pause 8000		;de 1 s
    			low alarm
    			pause 4000		;0.5s
    			high alarm
    			pause 8000		;
    			low alarm
    		endif
    		posact=pos		;mémorisation nouvelle position
    		return
    		
    interrupt:				;sub interruption sur C.O ou C.1
    	if tilt=0 and pos<>0 then		;action sur tilt
    		inc pos			;incrémentation position
    		if pos>=5 then	;boucle sur 4   positions
    			 pos=1
    		endif
    	endif
    	if onoff=0 then	;action sur onoff
    		 flag=1			;marque passage
    	endif
    	do loop while tilt=0 or onoff=0	;attente fin de condition interruption
    	setint or %00, %11		;réarmement interruption
    	return
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     


    • Publicité







Sur le même thème :


    301 Moved Permanently

    301 Moved Permanently


    nginx/1.2.1



 

Discussions similaires

  1. Contrôleur moteur pas à pas et mcc !
    Par gilou69 dans le forum Électronique
    Réponses: 1
    Dernier message: 12/02/2013, 22h30
  2. controleur PWM moteur DC 12V
    Par westwidewing dans le forum Électronique
    Réponses: 13
    Dernier message: 17/05/2012, 21h42
  3. contrôleur moteur
    Par licho dans le forum Électronique
    Réponses: 24
    Dernier message: 20/12/2010, 18h46
  4. Contrôleur de moteur...
    Par lordfinalff dans le forum Électronique
    Réponses: 2
    Dernier message: 17/01/2010, 20h31
  5. controleur moteur
    Par devisuh dans le forum Électronique
    Réponses: 2
    Dernier message: 08/04/2009, 21h54