Aller au contenu


Contenu de babylone_59

Il y a 28 élément(s) pour babylone_59 (recherche limitée depuis 24-avril 13)



#11210 Programme 16F877A

Posté par babylone_59 sur 21 mai 2008 - 05:44 dans Electronique

As tu un lien pour telecharger Pic C ligt? si oui peux tu me le fournir je vais essayer avec se logiciel?
merci



#11208 Programme 16F877A

Posté par babylone_59 sur 21 mai 2008 - 05:07 dans Electronique

En fait je n'est pas encore essayé de compiler.
Il faut le faire sous Mplab avec un compilateur C comme Hi Tech Picc mais je n'arrive pas a configurer Mplab avec HI tech Picc donc je fais d'abord mon prog en attendant de trouver un PC ou sa tourne bien avec un prog de PIC.voila voila



#11206 Programme 16F877A

Posté par babylone_59 sur 21 mai 2008 - 03:32 dans Electronique

voila j'ai continuer mon programme, je le réaffiche:

--Déclaration
#define IN1 pin_A0

#define capteur_Dr RB1
#define capteur_Ga RB2
#define capteur_Ha RB3

#define moteur_Ga_s1 RB4
#define moteur_Ga_s2 RB5

#define moteur_Dr_s1 RB6
#define moteur_Dr_s2 RB7

#define moteur_Ha_s1 RC0
#define moteur_Ha_s2 RC1

#define tt_droit()
{
moteur_Ga_s1(av,100);
moteur_Dr_s1(ar,100);
}

#define a_gauche()
{
while (capteur_Dr!=0)
{
moteur_Ga_s2(av,100);
moteur_Dr_s1(ar,100);
}
}

#define a_droite()
{
while (capteur_Ga!=0)
{
moteur_Ga_s1(av,100);
moteur_Dr_s2(ar,100);
}
}

#define demi_tour()
{
while(capteur_ga!=0) and (capteur_ga!=0)
{
moteur_Ga_s2(av,100);
moteur_Dr_s1(ar,100);
}
}
--initialisation (pour configurer les bits des ports en entrée/sortie, etc):
void Init(void)
{
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISB=0b11100000;
TRISC=0b00111111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active l'interruption de débordement du registre TMR0

capteur_Dr =0 ;
capteur_Ga =0 ;
capteur_Ha =0 ;

moteur_Ga_s1= 1;
moteur_Dr_s1= 1;
moteur_GA_s2= 0;
moteur_Dr_s2= 0;
moteur_Ha_s1=0 ;
moteur_Ha_s2=0 ;

}


-- prog principal:

main()
{
Init();
while(1) // Répéter toujours
{
if(capteur_Dr==1)and(capteur_Ga==1)demi_tour();
else if(capteur_Dr ==1)a_gauche();
else if(capteur_Ga==1) a_droite();
else tt_droit();
}
}


Par contre je ne suis pas sur qu'avec (av, 100) sa fonctionne.
Je doit mettre quoi (1, 100) non ?
Juste ce petit bout se code peut me faire éviter les obstacles?



#11203 Programme 16F877A

Posté par babylone_59 sur 21 mai 2008 - 12:43 dans Electronique

Ok mais il faut définir les actions demi_tour(), a_gauche() et a_droite().
Ou et comment sont elles définies?
De meme il faut définir que pre==1 et abs==0?
Pour commencer j'aimerai juste que mon robot évite les obstacles.



#11199 Programme 16F877A

Posté par babylone_59 sur 20 mai 2008 - 10:06 dans Electronique

Voici un début de mon programme, par contre je bloque au niveau de mon programme principal:

--Déclaration
#define IN1 pin_A0

#define capteur_Dr RB1
#define capteur_Ga RB2
#define capteur_Ha RB3

#define moteur_Ga_s1 RB4
#define moteur_Ga_s2 RB5

#define moteur_Dr_s1 RB6
#define moteur_Dr_s2 RB7

#define moteur_Ha_s1 RC0
#define moteur_Ha_s2 RC1



--initialisation (pour configurer les bits des ports en entrée/sortie, etc):
void Init(void)
{
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISB=0b11100000;
TRISC=0b00111111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active l'interruption de débordement du registre TMR0

capteur_Dr =0 ;
capteur_Ga =0 ;
capteur_Ha =0 ;

moteur_Ga_s1= 1;
moteur_Dr_s1= 1;
moteur_GA_s2= 0;
moteur_Dr_s2= 0;
moteur_Ha_s1=0 ;
moteur_Ha_s2=0 ;

}


-- prog principal:

main()
{
Init();
while(1) // Répéter toujours
{
action1();
action2();
...
}
}



j'ai quelques petites questions:

Au niveau des déclarations, je suis obligé de mettre tout sa:
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISA=0b00000011; //en entree c 1
TRISB=0b11111111;
TRISC=0b11011111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active

ou alors je n'en ai pas l'utilité?

Aussi au niveau du programme principal
je laisse mon while(1) pour boucler a l'infini mais au niveau ds actions 1 ... je fais quoi?
si je veux faire un :

while capteur_Ga=1 then moteur_Ga_sens_2=1 and moteur_Ga_sens_1=0
or while capteur_Dr=1 then moteur_Dr_sens_2=1 and moteur_Dr_sens_1=0
or while capteur_Ha=1 and capteur_Ga=1 and capteur_Dr=1 then moteur_Ha_sens_1=1
...

comment l'integrer a mon programme principal?
Merci



#11194 Programme 16F877A

Posté par babylone_59 sur 19 mai 2008 - 10:04 dans Electronique

En fait ma plaque est déja tiré et soudé. J'ai mon PIC qui est alimenté et son quartz ainsi que mon reset et chaque patte de mon PIC est relié a un bornié comme sa je viens connecter et déconnécter ce que je souhaite. Je vais tenter un programme et je l'afficherai pour avoir des conseils avant d'essayer de programmer mon pic et de tout foirer.
En tout cas merci de votre aide
A bientot



#11192 Programme 16F877A

Posté par babylone_59 sur 19 mai 2008 - 09:05 dans Electronique

OK merci je vais essayer.
Pour l'instant j'ai tout ce qui faut mais rien n'est connecté au pic.
L'utilisation d'un port et mieu qu'un autre port?



#11188 Programme 16F877A

Posté par babylone_59 sur 18 mai 2008 - 10:35 dans Electronique

Dans un premier temps j'aimerai juste faire fonctionner mon robot avec des capteurs infrarouge (led emettrice/receptrice).Lors que je me trouve devant un obstacle changer de direction.
J'ai 2 capteurs a l'avant et 2 moteurs.



#11183 Programme 16F877A

Posté par babylone_59 sur 16 mai 2008 - 05:22 dans Electronique

Bonjour
J'aimerai utiliser un PIC 16F877A pour rendre autonome mon robot.
Quelqu'un aurait t'il un programme a m'envoyer ( en C si possible car l'assembleur n'est pas ma tasse de thé) afin que je vois comment il est fait et essayer un peu de comprendre le fonctionnement?
Merci d'avance
Cordialement
Julien



#10865 probleme PIC 16F877A

Posté par babylone_59 sur 15 avril 2008 - 09:48 dans Programmation

ok je vais tester avec des 22pF pour le quartz au lieu de 33 et je vous dis quoi.
En tout cas merci de votre aide.
A bientot
Julien



#10858 probleme PIC 16F877A

Posté par babylone_59 sur 14 avril 2008 - 07:58 dans Programmation

Je n'ai pas de 22pF sous la main pour le moment.
Mais des que j'en ai j'essai. Vous pensez que c'est a cause de sa??
Sinon qu'es ce que ça pourré etre d'autre?
Le PIC ne possede pas une horloge interne?
Que faire pour la mettre en oeuvre ( au niveau programme et au niveau montage)?
Merci



#10855 probleme PIC 16F877A

Posté par babylone_59 sur 14 avril 2008 - 06:44 dans Programmation

J'ai un programmateur JDM.
Pourquoi l'absence de fusible peut creer un probleme?
voici mon montage:

Image IPB

Seule les valeurs des resistances change un petit peu.



#10847 probleme PIC 16F877A

Posté par babylone_59 sur 14 avril 2008 - 11:22 dans Programmation

Je n'est pas placer de fusible donc pas de probleme a ce niveau!lol
Par contre j'ai bien mon quartz de 20Mhtz avec ses condo de 33pF.
Et j'ai bien mes 2 condo pour mon régulateur.
Comment verifier si mon quartz fonctionne correctement?Normalement il est neuf donc il doit etre bon mais bon on ne sais jamais.
Merci



#10845 probleme PIC 16F877A

Posté par babylone_59 sur 14 avril 2008 - 10:17 dans Programmation

Bonjour
J'aimerai programmer un PIC 16F877A.
Tout d'abord pour verifier si mon programmateur fonctionne correctement je veux essayer de programmerle pic pour faire clignotter des leds sur les ports B et D.
Donc j'ai fais mon programme, j'ai programmer mon pic.Jusque la pas de problemes.
Ensuite je mets mon PIC sur ma plaque d'essai et la rien ne se passe, on dirai que mon PIC n'est pas programmer.Pourtant mon programme est bien dessus.
Donc soit mon montage ou soit mon programme n'est pas bon .
Ou alors derniere solution je crois que mon PIC est programmer est ce n'est pas le cas.
Voici mon programme.Si quelqu'un peut l'essayer et me dire si sa fonctionne chez lui, ce serai un probleme de moin a verifier. Merci

;**********************************************************************
;   									  *
;	Test led sur un 16F877A - 20 Mhz					  *
;																	 *
;									  *
;										  *
;**********************************************************************
;																	 *
;	Filename:		led.asm										   *
;	Date:		  25/06/00										  *
;	File Version:  1												 *
;																	 *
;	Author:		Julien											*
;	Company:	   Fribotte										  *
;																	 * 
;																	 *
;**********************************************************************
;																	 *
;	Files required: rien											 *
;																	 *
;																	 *
;**********************************************************************
;																	 *
;	Notes: Quartz 20 Mhz											 *
;																	 *
;																	 *
;**********************************************************************


	list	  p=16F877A			; list directive to define processor
	#include <p16F877A.inc>		; processor specific variable definitions

	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
; Pas de code protege, pas de watch hdog timer, delai de demarrage, horloge HS.


;**********************************************************************
;																	 *
;	Variables														*
;																	 *
;																	 *
;**********************************************************************


; Variable de temporisation
tempo50µ	EQU	0x20	; Variable tempo 50 µs
tempo10ms	EQU	0x21	; Variable tempo 10 ms
tempo1s		EQU	0x22	; Variable tempo 1s

;**************************************************************** DEBUT
		ORG	 0x000		  ; processor reset vector
		  GOTO	main		   ; go to beginning of program


;**********************************************************************
;																	 *
;	Interruption Timer											   *
;																	 *
;																	 *
;**********************************************************************

		ORG	 0x0005		  ; interrupt vector location
				; Ici on s'en sert pas !
		RETFIE				 ; return from interrupt



;**********************************************************************
;																	 *
;	Programme Main												   *
;																	 *
;																	 *
;**********************************************************************


main

;***** initialisations
		CALL	InitIO	; On intialise les ports d'E/S (A et B)

;***** boncle infinie
boucle		MOVLW	D'255'
		MOVWF	PORTD
		MOVLW	D'255'
		MOVWF	PORTB
		CALL 	Wait1s		
		CLRF	PORTD
		CLRF	PORTB
		CALL 	Wait1s		
		GOTO	boucle


;***** Attente de 1 s (exactement 1.00204 s)
Wait1s
		MOVLW	D'99'	;	99 fois
		MOVWF	tempo1s	; stockage dans la variable tempo50µ
T1sboucle	CALL	Wait10ms
		DECFSZ	tempo1s,1; décremente et test
		GOTO	T1sboucle; on boucle tant que <>0  
		RETURN


;***** Attente de 10 ms (exactement 10.02 ms)
Wait10ms
		MOVLW	D'198'	;	198 fois
		MOVWF	tempo10ms; stockage dans la variable tempo50µ
T10msboucle	CALL	Wait50µs
		DECFSZ	tempo10ms,1; décremente et test
		GOTO	T10msboucle; on boucle tant que <>0
		RETURN


;***** Attente de 50 µs (exactement, en comptant le temps d'appel)
Wait50µs	NOP
		NOP
		MOVLW	D'81'	;	81 fois
		MOVWF	tempo50µ; stockage dans la variable tempo50µ
T50µsboucle	DECFSZ	tempo50µ,1; décremente et test
		GOTO	T50µsboucle; on boucle tant que <>0  0.2*3=0.6 µs en tout
		RETURN


;**********************************************************************
;																	 *
;	Initialisation des ports d'E/S						   		  *
;																	 *
;																	 *
;**********************************************************************


InitIO
	CLRF	PORTD	; Initialise le port D
	CLRF	PORTB	; Initialise le port B
	BSF	STATUS, RP0; Bank 1 selectonnee
	MOVLW	0x0	; Port RD7-RD0 en sortie
	MOVWF	TRISD	;	/
	MOVLW	0x0	; Port RB7-RB0 en sortie
	MOVWF	TRISB	;	/
	BCF 	STATUS,	RP0; Bank 0 selectonnee
	RETURN


;**********************************************************************
;																	 *
;	Fin											  *
;																	 *
;																	 *
;**********************************************************************


	END					; directive 'end of program'


et voici le code HEX

0000: 2806 3FFF 3FFF 3FFF 3FFF 0009 2023 30FF  .ÿÿÿÿ.#ÿ
0008: 0088 30FF 0086 2010 0188 0186 2010 2807  ˆÿ†.ˆ†..
0010: 3063 00A2 2016 0BA2 2812 0008 30C6 00A1  c¢.¢..Æ¡
0018: 201C 0BA1 2818 0008 0000 0000 3051 00A0  .¡....Q 
0020: 0BA0 2820 0008 0188 0186 1683 3000 0088   ..ˆ†ƒ.ˆ
0028: 3000 0086 1283 0008 3400 3400 3FFF 3FFF  .†ƒ...ÿÿ
0030: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF  ÿÿÿÿÿÿÿÿ

J'espere que vous pourez me donner un petit coup de main
Merci d'avance
Julien



#10598 Probleme configuration IC-prog

Posté par babylone_59 sur 11 mars 2008 - 01:22 dans Programmation

C'est bon j'ai trouver
Pour windows XP/2000/NT il faut rajouter un fichier dans le meme repertoire que IC-prog.
Ce fichier est en fait le driver.
Voila, mais bon maintenant c'est une autre probleme on dirait que mon PIC ne se programme pas, pourtant tout ce passe correctement.
Si quelqu'un peut m'aider



#10597 Probleme configuration IC-prog

Posté par babylone_59 sur 10 mars 2008 - 09:07 dans Programmation

Bonjour a tous
Voila je débute en programmation de PIC et j'aimerai utiliser IC-prog.
Je l'ai donc télécharger mais impossible de le configurer.

erreur1: une erreur est survenue (le fichier spécidier est introuvable) Pendant le lancement du driver

erreur2: Privileged instruction

Faut t'il installer un drivers ou autres composant pour windows XP?
Si quelqu'un peut m'aider a résoudre ce probleme.
Merci d'avance
Julien



#10469 Bien choisir ses capteurs

Posté par babylone_59 sur 07 février 2008 - 06:55 dans Electronique

Je veux juste que mon robot soit autonome et donc su'il évite des obstacles dans une piece(murs ,pied de chaise,le chat....)
Je pense que je vais m'orienté vers une del et recepteur infrarouge, beaucoup moins cher que le telemetre.
Ensuite j'aurais une question a poser en ce qui concerne le quartz? 20MHz ça va poser un probleme??



#10468 Une question

Posté par babylone_59 sur 07 février 2008 - 06:25 dans Electronique

Bonjour
J'ai une petite question sur les quartz moi aussi
Vous dites que les PIC possede un quartz interne!Je travail avec le 16F877a.
Comment effectuer mon branchement??
Que me conseillé comme fréquence de quartz pour mon robot?
Merci



#10461 Bien choisir ses capteurs

Posté par babylone_59 sur 06 février 2008 - 09:21 dans Electronique

j'ai trouvé ceci:

cliquez ici

Le probleme c'est qu'il n'y a pas la liste des composant et l'implantation;
Si quelqu'un a le magazine peut -il me donner un coup de main
SVP
Merci



#10449 Bien choisir ses capteurs

Posté par babylone_59 sur 05 février 2008 - 09:17 dans Electronique

En ce qui me concerne c'est un petit robot.
J'ai trouvé ça comme capteur, un peu cher pour ce que c'est effectivement mais bon:
Voici le lien :
capteur SHARP

C'est de celui-ci que vous parlez précedement??
Combien m'en faudra t'il ?A l'avant un seul suffit ou deux c'est mieux??Ensuite a l'arriere c'est necessaire??



#10443 Bien choisir ses capteurs

Posté par babylone_59 sur 05 février 2008 - 07:44 dans Electronique

Bonjour
J'aimerai utiliser des capteurs pour éviter des obstacles mais je ne sais pas quoi choisir.
Que me conseillez vous, capteur infrarouge ou télémetres infrarouge??
Quel est le plus facile a mettre en place, le plus efficace ...
MERCI



#10415 Les moteurs pas à pas

Posté par babylone_59 sur 31 janvier 2008 - 11:06 dans Electronique

oui mais malheureusement il n'y a pas plus de spécifications...



#10412 Les moteurs pas à pas

Posté par babylone_59 sur 30 janvier 2008 - 10:13 dans Electronique

Bonjour
Voila j'ai trouvé ce type de moteur pour mon robot.Ce sont des moteurs pas a pas bipolaire et voici les spécifications données:

100 pas/tour - 5 Volts - 5Watts.
Résistance : 3 Ohms.

Pensez vous qu'il seront assez puissant pour déplacer mon robot (Poids max 1 Kg)?
Avec un moteurs pas a pas, un réducteurs est t'il encore necessaire pour faire tourner les roues??



#10401 Les moteurs pas à pas

Posté par babylone_59 sur 29 janvier 2008 - 01:52 dans Electronique

Bonjour
Je dois controler 2 moteurs pas à pas bipolaire (4fil)
J'ai fais un petit tour sur le net et j'ai vu qu'il était possible de faire un carte de commande avec un MC3479.
Par contre je n'est pas trouver de schéma éléctrique alros si quelqu'un a de bonne adresse a me donner??
Par la suite j'aimerai automatiser mon robot a l'aide d'un 16f877a. J'aimerai savoir si ma carte de commande va contenir le pic ou si alors se sera 2 cartes séparées?
Merci d'avance
:rolleyes:



#10396 Les moteurs pas à pas

Posté par babylone_59 sur 28 janvier 2008 - 04:35 dans Electronique

Bonjour à tous.
Voila j'aimerai avoir quelques renseignements sur les moteurs pas à pas;
j'aimerai construire un robot a l'aide de 2 moteurs pas a pas que j'ai récupérer dans une imprimante.
J'aimerai par la suite programmer se robot a l'aide d'un PIC 16F877A mais tout d'abord j'ai quelques questions.
Que faut t'il pour controler ce type de moteurs (carte d'alimentation, variateur de vitesse ...)???
Si quelqu'un peut m'expliquer rapidement ou à des schémas electrique pour ce type de moteur?
Merci d'avance :)
julien