Tachymètre Arduino

Problème d'affichage

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,

c’est temps si, je découvre arduino. magnifique. Mon projet est de construire une scie circulaire 7’’ dont le plateau coulisse. J’aimerai gérer précisément la vitesse de rotation de la lame de scie circulaire. Mes recherche mon conduits sur le tachymètre via arduino. Je ne vous cache pas que je reprends un labo présenter sur youtube. How to make Arduino based Digital Tachometer │RPM Counter

J’ai suivis le schéma de connexion schéma voici ma connexion image 0 image 1

voici la Arduino Nano Mega328P image 2

Le code est le suivant :`

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <LiquidCrystal.h>

LiquidCrystal lcd(12,11,6,5,4,3) ;

float value=0 ;
float rev=0 ;
int rpm ;
int oldtime=0 ;
int time ;

void isr() //interrupt service routine
{
rev++ ;
}

void setup()
{
lcd.begin(16,2) ;                //initialize LCD
attachInterrupt(0,isr,RISING) ;              //attaching the interrupt
}

void loop()
{
delay(1000) ;
detachInterrupt(0) ;           //detaches the interrupt
time=millis()-oldtime ;        //finds the time 
rpm=(rev/time)*60000 ;         //calculates rpm
oldtime=millis() ;             //saves the current time
rev=0 ;
lcd.clear() ;
lcd.setCursor(0,0) ;
lcd.print("___TACHOMETER___") ;
lcd.setCursor(0,1) ;
lcd.print(     rpm) ;
lcd.print(" RPM") ; 
lcd.print("   ") ;
attachInterrupt(0,isr,RISING) ;

}

`

Une fois le code vérifier puis téléversé

Type de carte : Nano

Proceseur : ATMega328

Port : 14 (pour moi)

Lors du téléversement, les diodes (rouge et la 2ème verte) clignote durant l’écriture. J’en conclus que c’est ok pour cette étape.

Je débranche USB puis je branche sous 9v le toute. L’écran n’affiche que ligne (barre de carré) alors que la configuration est bien sur (16,2)

Résultat négatif

Après mainte vérification du câblage et test de continuité, je cale à saisir le problème.

Auriez-vous une idée, indication pour les plus chevronnés

Merci d’avance de votre aide

`

Édité par prajanth

+0 -0

Salut,

Alors j’ai regardé tes schémas et je pense qu’il est bien déjà de travailler avec les pins de ta carte en tête.

Image utilisateur

Je ne suis pas le membre le plus expérimenté mais je vais essayer de t’aider.

Déjà, sur ta breadboard tu as des lignes entières disponibles pour l’alimentation, mais tu ne semble pas t’en servir. ça fait un circuit plus propre. Ce sont les deux lignes rouges et bleus avec marqué + et - : tu amènes ta masse et ton alimentation sur ces lignes et après tu peux te placer sur ces lignes pour alimenter ce que tu veux.

De ce que je peux voir, il me semble que tu as mélangé un peu tout les pins de data et ils ne sont pas reliés au bon endroit sur la carte, ce qui expliquerait pourquoi tu as des carrés blancs.

Une autre bonne pratique est de relié tout ce que tu n’utilises pas comme pins du LCD à la masse.

Voici un schéma trouvé sur le site de l’arduino: Image utilisateur

Essaye de le refaire en repartant de la, et évite d’avoir des fils qui se croisent aussi.

PS: met tes images dans la balise image : ![LEGENDE](URL image) c’est plus pratique pour nous :)

Bon courage !

Édité par Unknown

Vive la science

+0 -0

tes images ne marchent pas parce que tu n’as pas un lien direct vers l’image. tu dois clique droit sur ton image et faire copier l’adresse de l’image: c’est ce lien là que tu dois mettre entre parenthèses

Maintenant, c’est plus propre !

En fait tu t’es encore trompé. Si tu regardes mon schema que je t’ai donné, ça fait:

  • D2 (arduino) -> DB7 (LCD)

  • D3 (arduino) -> DB6 (LCD)

  • D4 (arduino) -> DB5 (LCD)

  • D5 (arduino) -> DB4 (LCD)

Édité par Unknown

Vive la science

+0 -0
Auteur du sujet

En D2 Arduino, j’ai le signal du sensor FC-51 je viens de faire ceci sans succès :

D6 (arduino) –> DB3 (lCD)

D7 (arduino) –> DB2 (lCD)

D8 (arduino) –> DB1 (lCD)

D9 (arduino) –> DB0 (lCD)

image 4
image 5

Édité par prajanth

+0 -0
Auteur du sujet

En position :

D2 (arduino) -> DB7 (LCD)

D3 (arduino) -> DB6 (LCD)

D4 (arduino) -> DB5 (LCD)

D5 (arduino) -> DB4 (LCD)

puis DB3 à DB0 sur la masse

toujours l’affichage de carré ..

+0 -0
Auteur du sujet

je suis revenu à la configuration de base qui correspond à un branchement 4bits.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
```arduino
#include <LiquidCrystal.h>

const int RS=12; //declaration constante de broche
const int E=11; //declaration constante de broche

const int D7=3; //declaration constante de broche
const int D6=4; //declaration constante de broche
const int D5=5; //declaration constante de broche
const int D4=6; //declaration constante de broche

//Vérifier les broches !
LiquidCrystal lcd(RS,E,D7,D6,D5,D4); //liaison 4 bits de données

``` puis ponté les PINS LCD DB0 à DB3 sur la masse PIN LCD VSS ou PIN Aduino GNG entre D2 et RST. Toujours les fameux carré.

la commnade LCD.begin(16,2); calibre l’écran –> 16 digits pour 2 lignes

Édité par prajanth

+0 -0

Je me suis trompé en écrivant lcd begin : P Tu as quand même une boucle avec un afffichage dedans ou pas ?

essaye de tourner ton potentiomètre aussi, j’ai souvenir d’avoir eu un problème avec ça aussi.

Je regarde pendant ce temps quelles peuvent être les autres sources de ton problème.

Vive la science

+0 -0
Auteur du sujet

l’affichage donne uniquement des rectangle blanc que se soit en position bas au haut du potentiomètre.je tourne le potentiomètre à chaque test.

j’ai une question de null. une fois le téléversement fait, il ne reste plus qu’à débrancher USb puis à alimenter?

le code est le suivant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <LiquidCrystal.h>

const int RS=12; //declaration constante de broche
const int E=11; //declaration constante de broche

const int D7=3; //declaration constante de broche
const int D6=4; //declaration constante de broche
const int D5=5; //declaration constante de broche
const int D4=6; //declaration constante de broche

//Vérifier les broches !
LiquidCrystal lcd(RS,E,D7,D6,D5,D4); //liaison 4 bits de données

float value=0 ;
float rev=0 ;
int rpm ;
int oldtime=0 ;
int time ;

void isr() //interrupt service routine
{
rev++ ;
}

void setup()
{
lcd.begin(16,2) ;                //initialize LCD
attachInterrupt(0,isr,RISING) ;              //attaching the interrupt
}

void loop()
{
delay(1000) ;
detachInterrupt(0) ;           //detaches the interrupt
time=millis()-oldtime ;        //finds the time 
rpm=(rev/time)*60000 ;         //calculates rpm
oldtime=millis() ;             //saves the current time
rev=0 ;
lcd.clear() ;
lcd.setCursor(0,0) ;
lcd.print("___TACHOMETER___") ;
lcd.setCursor(0,1) ;
lcd.print(     rpm) ;
lcd.print(" RPM") ; 
lcd.print("   ") ;
attachInterrupt(0,isr,RISING) ;

}

Édité par prajanth

+0 -0
Auteur du sujet

aujourd’hui, j’ai vérifié toutes les soudures (LCD + Nano) ainsi que le test de continuité. j’ai fait le test avec cette configuration de connexion :connexion selon vidéo youtube

J’ai fait les test selon la connexion 4bits selon arduinoconnexion selon 4bits arduino

Voici le récapitulatif des connexions (datas "test1" - "test2") tableau connexions test1 & test2

J’ai aussi mis un potentiomètre type 3296W 103 10k et changer aussi le 3362P 200Ohm

Le code (j’ai changé la correspondance des PINS datas selon le test1 / test2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <LiquidCrystal.h>

const int RS=12; //declaration constante de broche
const int E=11; //declaration constante de broche

const int D7=2; //declaration constante de broche
const int D6=3; //declaration constante de broche
const int D5=4; //declaration constante de broche
const int D4=5; //declaration constante de broche

//Vérifier les broches !
LiquidCrystal lcd(RS,E,D7,D6,D5,D4); //liaison 4 bits de données

float value=0 ;
float rev=0 ;
int rpm ;
int oldtime=0 ;
int time ;

void isr() //interrupt service routine
{
rev++ ;
}

void setup()
{
lcd.begin(16,2) ;                //initialize LCD
lcd.print("test") ;
attachInterrupt(0,isr,RISING) ;              //attaching the interrupt
}

void loop()
{
delay(1000) ;
detachInterrupt(0) ;           //detaches the interrupt
time=millis()-oldtime ;        //finds the time 
rpm=(rev/time)*60000 ;         //calculates rpm
oldtime=millis() ;             //saves the current time
rev=0 ;
lcd.clear() ;
lcd.setCursor(0,0) ;
lcd.print("___TACHOMETER___") ;
delay(1000) ;
lcd.setCursor(0,1) ;
lcd.print(     rpm) ;
lcd.print(" RPM") ; 
lcd.print("   ") ;
delay(1000) ;
attachInterrupt(0,isr,RISING) ;

}

toujours c’est fameux carré blanc.

Édité par prajanth

+0 -0

Honnêtement j’ai l’impression que ton LCD est le problème. Tu avais un bon branchement et un bon code. Tu as changé le potentiomètre.

Est ce que tu as une autre carte arduino classique pour essayer ?

Où as tu acheté ton écran ? Est ce qu’il ne semble pas endommagé ?

Tu peux laisser l’alimentation via usb, tu n’es pas obligé de débranché. C’est juste que tu ne pourras pas avoir de grosse charge. Ex: moteur (de toute façon dans tout les cas une sortie arduino ne peut sortir que 50mA max)

Désolé, la réparation de panne matériel à distance c’est difficile :(

Vive la science

+0 -0
Auteur du sujet

je viens de faire ce labo labo j’obtient la même chose

labo

Effectivement, j’ai tous changer UNO-NAno Potentiomètre sauf l’écran acquis aliexpress.

la solution est de switcher l’écran pour en avoir le cœur net. Merci de ton aide …

+0 -0

Ah oui.. Aliexpress c’est pas cher mais des fois on ne sait pas sur quoi on tombe. J’ai lu avant hier quelqu’un qui avait commandé des atmega, a l’intérieur c’était tout autre chose.. Bonne chose pour détecter que c’est latmega qui est defaillant !

Bravo pour ta persévérance sinon :)

Vive la science

+0 -0
Auteur du sujet

il reste plus qu’à remplacer l’écran pour être sur du bon branchement & code. comme je vis en thailande depuis peu, il me faut passer par aliexpress (plus rapide), sinon je dois monter sur BKK (escence) ça chère… je donne suite une fois le nouvel écran reçu. merci pour ton aide

+0 -0

Je ne sais pas combien tu l’as payé, mais une garantie sur aliexpress me semble difficile.

En tout cas commande le nouveau chez un autre vendeur de aliexpress !

Bon après-midi ;)

Vive la science

+0 -0
Auteur du sujet

Surprise! Tuto

branchement _0
branchement_1

L’écran affiche bien du texte.

J’ai testé sur une autre carte arduino UNO, c’est ok.

Conclusion –> Donc les interfaces sont ok - reste les plaques de pain "HS"? Je reprends tous à zéro.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte