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 ---
- 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 ---
Modérateur : Jérémy
COMPTEUR POUR VOITURE AVEC PIC16F88
- JEJE89000
Débutant- Messages : 45
- Âge : 44
- Enregistré en : octobre 2015
- Localisation : dans le centre
Bonjour j ai un souci avec mon compteur vitesse car tableau de bord hs . Le principe marche bien mais je n arrive pas a faire la conversion Volt KMH
Merci de m aider je suis nouveau dans la programmation de PIC
Code:
/*Header******************************************************/
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
unsigned char ch; //
unsigned int adc_rd; // Declare variables
char *text; //
long tlong; //
void main() {
INTCON = 0; // All interrupts disabled
ANSEL = 0x04; // Pin RA2 is configured as an analog input
TRISA = 0x04;
ANSEL = 0; // Rest of pins are configured as digital
Lcd_Init(); // LCD display initialization
Lcd_Cmd(_LCD_CURSOR_OFF); // LCD command (cursor off)
Lcd_Cmd(_LCD_CLEAR); // LCD command (clear LCD)
text = "Peugeot "; // Define the first message
Lcd_Out(1,1,text); // Write the first message in the first line
text = ""; // Define the second message
Lcd_Out(2,1,text); // Define the first message
ADCON1 = 0x82; // A/D voltage reference is VCC
TRISA = 0xFF; // All port A pins are configured as inputs
Delay_ms(30);
Lcd_Cmd(_LCD_CLEAR); // LCD command (clear LCD)
while (1) {
text = "KMH:"; // Define the third message
Lcd_Out(1,4,text);
adc_rd = ADC_Read(2) / 3,5; // A/D conversion. Pin RA2 is an input.
Lcd_Out(2,4,text); // Write result in the second line
Delay_us(3);
}
}
Merci de m aider je suis nouveau dans la programmation de PIC
Code:
/*Header******************************************************/
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
unsigned char ch; //
unsigned int adc_rd; // Declare variables
char *text; //
long tlong; //
void main() {
INTCON = 0; // All interrupts disabled
ANSEL = 0x04; // Pin RA2 is configured as an analog input
TRISA = 0x04;
ANSEL = 0; // Rest of pins are configured as digital
Lcd_Init(); // LCD display initialization
Lcd_Cmd(_LCD_CURSOR_OFF); // LCD command (cursor off)
Lcd_Cmd(_LCD_CLEAR); // LCD command (clear LCD)
text = "Peugeot "; // Define the first message
Lcd_Out(1,1,text); // Write the first message in the first line
text = ""; // Define the second message
Lcd_Out(2,1,text); // Define the first message
ADCON1 = 0x82; // A/D voltage reference is VCC
TRISA = 0xFF; // All port A pins are configured as inputs
Delay_ms(30);
Lcd_Cmd(_LCD_CLEAR); // LCD command (clear LCD)
while (1) {
text = "KMH:"; // Define the third message
Lcd_Out(1,4,text);
adc_rd = ADC_Read(2) / 3,5; // A/D conversion. Pin RA2 is an input.
Lcd_Out(2,4,text); // Write result in the second line
Delay_us(3);
}
}
COMPTEUR POUR VOITURE AVEC PIC16F88
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Hello JEJE89000 ,
Je te souhaite la bienvenue sur le Fofo . et je te propose d'entrée de jeu de vite jeter un oeil sur les régles du forum que tu trouveras ici
Notamment pour mettre ton code entre les balises prévues a cet effet !
as tu problème avec ta touche ' (apostrophe) il n'y en a pas dans ton message
Si tu débute, ce forum est fait pour toi . Mais pour obtenir des réponses, tu dois toi aussi fournir un minimum de taf.
Comme par exemple donnez le lien de ton PIC ? plutôt important , j'ai passé pas mal de temps pour créer une aide pour faire ca, regarde ici, ça te paraitra super facile, j'en suis sur.
Un schéma ça aide vachement aussi, car régulièrement les problèmes viennent du hard !
Il manque aussi le logiciel avec lequel tu programme ?
Je me penche sur ton soucis dès que tu aurais fais le nécessaire
Je te souhaite la bienvenue sur le Fofo . et je te propose d'entrée de jeu de vite jeter un oeil sur les régles du forum que tu trouveras ici
Notamment pour mettre ton code entre les balises prévues a cet effet !
as tu problème avec ta touche ' (apostrophe) il n'y en a pas dans ton message
Si tu débute, ce forum est fait pour toi . Mais pour obtenir des réponses, tu dois toi aussi fournir un minimum de taf.
Comme par exemple donnez le lien de ton PIC ? plutôt important , j'ai passé pas mal de temps pour créer une aide pour faire ca, regarde ici, ça te paraitra super facile, j'en suis sur.
Un schéma ça aide vachement aussi, car régulièrement les problèmes viennent du hard !
Il manque aussi le logiciel avec lequel tu programme ?
Je me penche sur ton soucis dès que tu aurais fais le nécessaire
COMPTEUR POUR VOITURE AVEC PIC16F88
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Je viens de regarder grossièrement ton code ,
Il y as des erreurs de fou ? tu as fais du copier collé ? Désolé , je suis de nature plutôt franche !
La premiere choses se situe ici .
Tu met la PIN RA2 en analogique avec ANSEL = 0x04 et de ux lignes plus tard tu la passe en numérique : ANSEL = 0; Forcement ta lecture analogique ne fonctionnera jamais.
Je ne vois aucune initialisation de la lecture analogique
Il y as des erreurs de fou ? tu as fais du copier collé ? Désolé , je suis de nature plutôt franche !
La premiere choses se situe ici .
Code : Tout sélectionner
ANSEL = 0x04; // Pin RA2 is configured as an analog input
TRISA = 0x04;
ANSEL = 0; // Rest of pins are configured as digital
Tu met la PIN RA2 en analogique avec ANSEL = 0x04 et de ux lignes plus tard tu la passe en numérique : ANSEL = 0; Forcement ta lecture analogique ne fonctionnera jamais.
Je ne vois aucune initialisation de la lecture analogique
COMPTEUR POUR VOITURE AVEC PIC16F88
COMPTEUR POUR VOITURE AVEC PIC16F88
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
il vaudrait mieux eviter de poster sur plusieurs forum en meme temps
et eviter les doublons ou dispertions.
ou au moins le signaler..
dans ce dernier code posté..
eviter de diviser un entier par un flottant
et qui plus est specifier la virgule par un point ...
On doit specifier une zone RAM avant d'utiliser un pointeur
sinon on arrose n'importe ou..
cette erreur peut passer inapercue avec un petit programme
mais fout le boxon des qu'on utilise pas mal de RAM.
il vaudrait mieux eviter de poster sur plusieurs forum en meme temps
et eviter les doublons ou dispertions.
ou au moins le signaler..
dans ce dernier code posté..
Code : Tout sélectionner
adc_rd = ADC_Read(2) / 3,5; // A/D conversion. Pin RA2 is an input.
eviter de diviser un entier par un flottant
et qui plus est specifier la virgule par un point ...
On doit specifier une zone RAM avant d'utiliser un pointeur
sinon on arrose n'importe ou..
cette erreur peut passer inapercue avec un petit programme
mais fout le boxon des qu'on utilise pas mal de RAM.
Code : Tout sélectionner
float kmh;
char Text[24]; //
....
adc_rd = ADC_Read(2) ;
kmh= (float) adc_rd / 3.5;
strcpy(Text, "kmh : "); // Define the 2nd message
Lcd_Out(2,1,Text);
floatToStr(kmh,text+4 );
Text[16]=0; // maxi =taille LCD
Lcd_Out(2,1,Text);
Delay_ms(10); // <- à reduire si besoin est
COMPTEUR POUR VOITURE AVEC PIC16F88
COMPTEUR POUR VOITURE AVEC PIC16F88
COMPTEUR POUR VOITURE AVEC PIC16F88
COMPTEUR POUR VOITURE AVEC PIC16F88
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour JEJE89000,
Merci d'ouvrir un autre post pour une nouvelle question ? Sinon ca va vite devenir la zizanie !
De plus merci de publier le code qui fonctionne bien, cela pourrait aider d'autre personnes , et c'est le principe du forum, tu travaille pour toi mais ca aide les autres !
Concernant les idées y'en as des millions, tu dépend de la complexité, du budget, du temps, et du niveau etc ......
Merci d'ouvrir un autre post pour une nouvelle question ? Sinon ca va vite devenir la zizanie !
De plus merci de publier le code qui fonctionne bien, cela pourrait aider d'autre personnes , et c'est le principe du forum, tu travaille pour toi mais ca aide les autres !
Concernant les idées y'en as des millions, tu dépend de la complexité, du budget, du temps, et du niveau etc ......
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 29 invités