bon j'ai cablé vite fait un slave...
il veut pas televerser.... je charge en ayantb RX arduino deconnecté
bon j'ai cablé vite fait un slave...
il veut pas televerser.... je charge en ayantb RX arduino deconnecté
vous avez bien choisi le bon port pour ce nano?
que dit exactement l'IDE?
comment est alimenté le Nano? (juste sur USB?)
J'ai la led rouge Marqué "L" qui clignote lentement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Arduino : 1.8.9 (Windows 10), Carte : "Arduino Nano, ATmega328P" Le croquis utilise 5716 octets (18%) de l'espace de stockage de programmes. Le maximum est de 30720 octets. Les variables globales utilisent 421 octets (20%) de mémoire dynamique, ce qui laisse 1627 octets pour les variables locales. Le maximum est de 2048 octets. avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x87 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x87 Problème de téléversement vers la carte. Voir http://www.arduino.cc/en/Guide/Troubleshooting#upload pour suggestions. Ce rapport pourrait être plus détaillé avec l'option "Afficher les résultats détaillés de la compilation" activée dans Fichier -> Préférences.
il ne trouve pas la carte sur le port série sélectionné
Si vous avez bien débranché Rx et Tx (débranchez les 2 pour être sûr) c'est qu'il y a un souci ailleurs.
Mauvais boot loader? peut-être choisir dans Outils / Processeur --> "ATMega 328P Old Bootloader" pour votre Nano
Sinon câble USB, mauvais port série, carte défectueuse?
il faut l'ancien "boot loader" .... mais il veullent pas discuter entre eux.... le slave fait 3 beep toutes 5 a 10 seconde
quand le slave s'endort il fait 3 beeps un peu aigusQuand il ne trouve pas le HC12, il fait aussi 3 beeps mais graves et plus longs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void goToSleep() { for (uint8_t i = 0; i < 3; i++) { tone(buzzPin, sleepFreq, 50); delay(75); } ...==> modifiez le 3 dans initHC12 et mettez 20 à la place par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void initHC12() { ... else { for (uint8_t i = 0; i < 3; i++) { tone(buzzPin, errorFreq, 200); delay(250); } while (true); } }
ça nous permettra de savoir mieux s'il s'endort ou s'il n'a pas trouvé le HC12.
S'il s'endort c'est que le maître a cessé d'émettre (ou qu'il lit une distance trop grande > 9m) pendant plus de 3 secondes
mais s'il se réveille ça veut dire que le maître le lui a demandé aussi.
==> est-ce que le LCD affiche une distance cohérente sur le maître ?
j'ai modifier comme ca:
mais le slave continu a faire 3 beep tres rapide toutes les 5 a 10 s a vue de nez
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 void initHC12() { uint8_t detectedBaudIndex = 0; // get parameters from DIL DIP SWITCHES getDefaults(); if (tuneToHC12BaudRate(detectedBaudIndex)) { // managed to connect // Improvement neeeded = check answer is OK for each command setATCommandMode(true); HC12.print(F("AT+FU")); HC12.println(hc12Parameters.fuMode); HC12.print(F("AT+P")); HC12.println(hc12Parameters.powerMode); HC12.print(F("AT+")); HC12.println(hc12Channels[hc12Parameters.channelIndex]); HC12.print(F("AT+B")); HC12.println(hc12BaudRates[hc12Parameters.baudRateIndex]); setATCommandMode(false); // exit AT Mode, which validates new settings HC12.end(); HC12.begin(hc12BaudRates[hc12Parameters.baudRateIndex]); HC12Ready = true; } else { for (uint8_t i = 0; i < 20; i++) { tone(buzzPin, errorFreq, 200); delay(250); } while (true);
si je debranche le master il ne beep plus... donc il recois quand meme des truc du master mais il n'interprete pas...
et ce que le master affiche est juste... mesure avec un metre pour etre sur....
OK donc ce n'est pas une erreur du HC12 (vous pouvez remettre 3), il se met en mode sleep puis se réveille à nouveau ça veut dire qu'il reçoit quelque chose du master
oui donc ça confirme bien qu'il ya une information qui arrive du master mais ensuite le master ne doit rien envoyé de cohérent et au bout de 5s il s'endort à nouveau donc, puis se réveille car le master a dû balancer quelque chose...si je débranche le master il ne beep plus
Pour la distance, vous avez bien enlevé la division par 10 et c'est bien une distance correcte en cm que vous voyez sur le LCD ?
avez vous changé ces 2 valeurs dans le master?pouvez vous modifier la fonction du master calculateDistanceCode() et mettre cela à la place
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 const uint16_t minDistanceAlert_cm = 50; // in cm. continuous beep if distance less than 50 cm const uint16_t maxDistanceAlert_cm = 900; // in cm. Start beeping if distance less than 9 m
(rajoutez la partie en rouge)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void calculateDistanceCode() { // calculate beep code ('0' to '9') depending on proximity. '0' = continuous beep, '9' = no beep if (distance >= maxDistanceAlert_cm) distanceCode = maxDistanceBeepCode; else if (distance <= minDistanceAlert_cm) distanceCode = minDistanceBeepCode; else distanceCode = map(distance, minDistanceAlert_cm, maxDistanceAlert_cm, minDistanceBeepCode + 1, maxDistanceBeepCode); lcd.clear(); lcd.print(F("D:")); lcd.print(distance); lcd.print(F(" cm")); lcd.setCursor(0,1); lcd.print(F("Code: '")); lcd.print(distanceCode); lcd.print(F("'")); }
l'écran LCD devrait afficher toujours la distance à chaque lecture mais aussi un code qui va de '0' (sonnerie continue) à '9' pas de sonnerie. c'est ce code qui est transmis sans fil à l'autre HC12
==> que voyez vous ?
PS: je repars demain faire de la randonnée pour une semaine, donc ce sera plus difficile de débugguer je n'aurais pas le système avec moi
je commence a me perdre...
j'ai remis 3 dans le code de slave
j'ai rajouter les ligne dans le code du master
il me dit HC 12 unavaillable
peux etre que je recharge le code de depart non? parceque la je sais plus trop....!
quand je maitrise pas qu'est ce que ca m'enerve....
il faut la division par 10... c'est pour ca que le HC 12 slave deconne, la mesure est juste mais quand j'ai 2m50 soit 250cm....il me dit 2500!!! donc coté slave puisqu'que au dessus de 9 m il dort...
milles excuse Jay.... avec mes conneries je vous ai tué votre dimanche....
Pas de souci j’ai eu plein de temps pour faire autre chose et puis pour moi c’est tous les jours dimanche
Donc ça fonctionne ?
non ca tourne pas rond....
je vais recharger le code de base en attendant votre retour... avec toutes les modifs que vous m'avez indiquer je me suis perdu je pense....
Ok
Mais remettez 4 au lieu de 3 pour le nombre de caractères à attendre dans le Rxxxx<CR> qu’envoie le radar et divisez par 10 dans la fonction distance
Ce serait aussi intéressant de savoir ce qui est envoyé quand vous pointez vers le ciel ou que vous avez la main à 1cm du radar.
Bonjour Jay,
bon code rechargé et modifié, (/10 et pour afficher le code transmit au HC 12)
bilan: on a bien notre affichage de distance juste maintenant ex:225cm quand on est a 2,25m
on a le code en dessous de 2 m on passe a "code 0" au dessus a "code 1" mais si je suis a 3 metres passé il me dit pas code 3 etc etc...
quand je vise le ciel, il me dit 999cm (normal puisque la distance max du capteur est de 10 m mais il continu a beeper lent....
Prudence, bonne route et surtout une super Rando....
Salut
Je suppose que vous avez mis aussi le 4
avez vous changé ces 2 valeurs dans le master?
Pouvez vous mettre le code exact que vous avez pour la fonction calculateDistanceCode()?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 const uint16_t minDistanceAlert_cm = 50; // in cm. continuous beep if distance less than 50 cm const uint16_t maxDistanceAlert_cm = 900; // in cm. Start beeping if distance less than 9 m
(Départ dans la matinée )
oui j'ai mis 200 a la place de 50 (pour avoir 2m pour le beep continu) sinon il falait etre quaziment contre un mu pour que ca beep continu
j'ai remis comme votre code et ca marche...j'ai bien mes code 2;3;4;5;6;7;8;et 9 arret des beep
j'essai avec un slave de branche...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager