Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2388 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  257  258  259  ..  278  279  280  281  282  283
Auteur Sujet :

[arduino] Topic Unique blabla @ Arduino

n°410112
nerosso
Posté le 26-08-2023 à 00:37:43  profilanswer
 

Reprise du message précédent :
Salut au topic,
 
Je viens te terminer mon premier projet Arduino + Sabertooth (pour envoyer des watts). C'est absolument génial pour créer un mini-automate programmable.
 
Qu'utilisez-vous pour sécuriser le cablage? Faut-il prendre un shield vierge et souder les cables dessus? Une nappe prête à souder? J'imagine que c'est ce qui risque le moins de bouger
 
Merci pour vos retours d'expérience.

mood
Publicité
Posté le 26-08-2023 à 00:37:43  profilanswer
 

n°410320
crepator4
Deus ex machina
Posté le 30-08-2023 à 03:05:43  profilanswer
 

reçu la brele de banggood , 10 jours ,ça va ... gain de place un peu bof par contre


---------------
...survivre à ses Medecins...
n°411021
froggycorp
Posté le 10-09-2023 à 19:31:02  profilanswer
 

3615 MyLife semaine de merde :
J'ai mon module attiny + RFM en autonomie avec un signal toutes les 10mn en mode "fonctionne, fonctionne pas", mais pas toutes les 10mn comme prévue avec option aléatoire "fonctionne plus".

 

Donc changement de mosfet de commande de démarrage du RFM, recablage, test à base de 1s sur la breadboard (d'ailleurs il y en a une qui a appris à voler, si vous avez un bon fabricant), resoudage, déplacement du MOSFET, changement/test de tous les paramètres, vérification du mode sleep, des échanges SPI, bah ca marche en test (je test avec Nano puis attiny pour avoir un meilleur débuggage que des leds qui clignotent) mais pas en "prod" (timer de 10mn).

 

J'en arrive à la version, changement de INPUT par OUPUT LOW sur la commande du MOSFET pour l'état sleep, tout de suite cela va mieux, sauf que avant cela fonctionnait parfois et là plus du tout.

 

SAUF QUE, avec un envoi toutes les 1s, cela fonctionne et pas les suivants \o/

 

Et oui ! avec un envoi toutes les 1s, les condos du RFM restent actif ET DONC le laisse en veille, alors que toutes les 10s (j'ai testé !) ils sont déchargés.

 

A cela s'ajoute la joie que le RFM répond favorablement au commande SPI (id, état, ...), sauf qu'en vrai pas du tout, sans test qu'il arrive au moins "ready" au premier mode, c'est du pipo \o/

 

En résumé :
- OUTPUT LOW à la base de INPUT pour garder le MOSFET en non passant
- Saloperie de condos qui font croire que cela fonctionne mais pas du tout
- des commandes SPI valides alors que pas du tout !

 

------------

 

Au final, je me retrouve avec une lib gestion d'envoi de paquet de capteurs à 4200 octets de flash et 207 octets de RAM, faut que je regarde dans les libs que j'utilise voir pour en virer un peu

 

MySensors c'est 6100 o de flash et 300 o de RAM

 

Consommation en veille 5uA après le LDO (c) aliexpress de qualité aléatoire ^^

Message cité 1 fois
Message édité par froggycorp le 10-09-2023 à 19:40:08
n°411023
rat de com​bat
attention rongeur méchant!
Posté le 10-09-2023 à 20:28:23  profilanswer
 

nerosso a écrit :

Salut au topic,
 
Je viens te terminer mon premier projet Arduino + Sabertooth (pour envoyer des watts). C'est absolument génial pour créer un mini-automate programmable.
 
Qu'utilisez-vous pour sécuriser le cablage? Faut-il prendre un shield vierge et souder les cables dessus? Une nappe prête à souder? J'imagine que c'est ce qui risque le moins de bouger
 
Merci pour vos retours d'expérience.

Y'a plusieurs solutions. La plus simple et la plus crade c'est de noyer les connections des câbles "Dupont" voir les composants rajoutés dans la colle chaude. :o Sinon tout dépend de ce que tu as fabriqué exactement (photo?). Perso je soude des composants "nus" sur perfboard.
 
 

froggycorp a écrit :

3615 MyLife semaine de merde :

Tu peux nous rappeller (ou mettre un lien) ton projet/montage? Je me souviens plus...


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°411025
froggycorp
Posté le 10-09-2023 à 20:57:34  profilanswer
 

Il y en a sur tous les threads  :o  
Mais en gros, là c'est juste le test d'émission via attiny + RFM69 avec réécriture complète de la lib d'interface. Je trouvais les libs existantes (il y en a pas beaucoup) trop lourdes et pas assez "bas" niveau.

 

J'ai découvert pleins de merdouilles, genre j'ai le droit à 10dBM et le RFM a un mode "normal" et un mode "POWER BOOST", les 2 permettent du 10dBM, sauf que dans le premier cas, bah cela émet que dalle alors que dans le second j'ai 100% de réception.

 

Bon j'ai un probleme de calcul de Vcc via le 1.1v interne ...  :fou:
Je désactive l'ADC pour économiser et relance juste pour récupérer, mais cela merdoit (alors qu'avant non ...)


Message édité par froggycorp le 10-09-2023 à 21:06:39
n°411027
rat de com​bat
attention rongeur méchant!
Posté le 10-09-2023 à 21:34:31  profilanswer
 

L'ADC du AVR? Y'a un truc, faut attendre un peu et lancer une conversion bidon, j'en avais parlé sur blabla je crois.


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°411028
froggycorp
Posté le 10-09-2023 à 22:00:17  profilanswer
 

Tu as le code en mémoire ?
 
En faite, cela a fonctionné sans ^^

n°411049
froggycorp
Posté le 11-09-2023 à 09:43:02  profilanswer
 

Bon en faite, maintenant que le RFM n'a plus ses condos de charger, j'ai un gros voltage drop au lancement, ce qui explique le Vcc interne mauvais.

n°412271
tchou@happ​y
Posté le 24-09-2023 à 21:42:53  profilanswer
 

salut les pros de l'arduino.
J'ai un souci avec arduino IDe sur windows 11.
 
 
Je veux envoyer vers mon arduino micro un programme, mais j'ai un message d'erreur.
La compilation elle se passe bien.
 
Vous avez un idée ? voici le message:
 
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
 
Programmer supports the following devices:
    Device code: 0x44

Message cité 1 fois
Message édité par tchou@happy le 24-09-2023 à 21:43:06
n°412273
froggycorp
Posté le 24-09-2023 à 21:51:57  profilanswer
 

version aliexpress ?

mood
Publicité
Posté le 24-09-2023 à 21:51:57  profilanswer
 

n°412274
rat de com​bat
attention rongeur méchant!
Posté le 24-09-2023 à 21:57:49  profilanswer
 

Je ne vois aucune erreur dans ce message? :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°412275
jimbofarra​r
Poreux de la cafetière
Posté le 24-09-2023 à 22:05:55  profilanswer
 

tchou@happy a écrit :

salut les pros de l'arduino.
J'ai un souci avec arduino IDe sur windows 11.
 
 
Je veux envoyer vers mon arduino micro un programme, mais j'ai un message d'erreur.
La compilation elle se passe bien.
 
Vous avez un idée ? voici le message:
 
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
 
Programmer supports the following devices:
    Device code: 0x44


Quelle version d’IDE ?
 
Comme RdC je ne vois pas de message d’erreur.


---------------
Bien des Shubs et des Zouls furent calcinés dans les profondeurs de l'énorme Sloar, en vérité, je vous le dis !
n°412276
crazytiti
http://crazytiti.free.fr/
Posté le 24-09-2023 à 22:06:20  profilanswer
 

+1 avec le rat...
Précise la carte que tu veux programmer ?


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°412279
jimbofarra​r
Poreux de la cafetière
Posté le 24-09-2023 à 22:11:45  profilanswer
 

crazytiti a écrit :

+1 avec le rat...
Précise la carte que tu veux programmer ?


Arduino micro donc à base de 32u4


---------------
Bien des Shubs et des Zouls furent calcinés dans les profondeurs de l'énorme Sloar, en vérité, je vous le dis !
n°412281
tchou@happ​y
Posté le 24-09-2023 à 22:17:06  profilanswer
 

c'est une arduino micro ( de aliexpress oui )  
 
Effectivement j'ai vue le message rouge, je me suis dit ça a foiré.
J'ai donc fait un test avec l'exemple "Blink", et en effet il ne semble pas y avoir d'erreur  :o  
 
Sorry  :D

n°412285
jimbofarra​r
Poreux de la cafetière
Posté le 24-09-2023 à 22:37:57  profilanswer
 

tchou@happy a écrit :

c'est une arduino micro ( de aliexpress oui )  
 
Effectivement j'ai vue le message rouge, je me suis dit ça a foiré.
J'ai donc fait un test avec l'exemple "Blink", et en effet il ne semble pas y avoir d'erreur  :o  
 
Sorry  :D


Si c’est avec l’IDE 2.x il y a des messages d’avrdude qui apparaissent même en n’étant pas en mode verbeux (contrairement aux versions 1.x qui ne les affichent pas si l’upload est réussi)


---------------
Bien des Shubs et des Zouls furent calcinés dans les profondeurs de l'énorme Sloar, en vérité, je vous le dis !
n°412322
froggycorp
Posté le 25-09-2023 à 12:09:07  profilanswer
 

Normalement tu vois l'upload et cela termine par "upload réussi" ou un truc comme cela

n°412376
tchou@happ​y
Posté le 25-09-2023 à 18:18:56  profilanswer
 

Bon en fait c'était bon, le programme s'est bien écrit correctement dans l'arduino.
Mais j'ai encore besoin d'aide.  :sweat:  
 
Alors pour faire simple, ce programme ( qui n'est pas de moi, mais est en libre service (https://lebois-racing.fr/interfaces-pedales-srt) un grand merci à lui  :jap: ) doit permettre de configurer mon arduino micro en contrôleur de jeux et de raccorder  les 3 pédales de mon pédalier de simulation auto à l’ordinateur.
C'est un programme d'interface pédalier - PC quoi  :o , dans le gestionnaire de périphérique de Windows je voit bien apparaître mon arduino comme un contrôleur de jeux, avec des boutons configurable et des barregraphes pour les 3 pédales.
 
J'utilise 3 pédales qui si j'ai bien compris se répartissent comme ceci:
 
- Accelerator = I0
- Brake         = I1
- Throttle     = I2   ( embrayage)
 
Le programme est composé de 3 "onglets" : pedal-interface.ino , SRTPedals.ccp , SSRTpedals.h
 
 
 :sweat:  :sweat:  :sweat: Je vous colle les 3 onglets en dessous, mais le soucis c'est que peu importe si je me branche sur A0 ou A1 ou A2 , j'ai uniquement le barregraphe associé à FREIN qui varie   :sweat:  :sweat:  :sweat:  :sweat:  
 
 
 
pedals-interface.ino

Code :
  1. //V2.1
  2. #define DEBUG
  3. int minAccelerator = 930;
  4. int maxAccelerator = 2000;
  5. int minBrake = 0;
  6. int maxBrake = 10000;
  7. int minClutch = 13700;
  8. int maxClutch = 15000;
  9. #include "src/Joystick.h"
  10. #include "SRTPedals.h"
  11. Joystick_ Joystick(0x04, 0x04, 40, 0, false, false, falsetrue, false, false, false, true, true, true, false);
  12. SRTPedals_ SRTPedals(3, //number of pedals
  13.                      minAccelerator, minBrake, minClutch, 0,//min
  14.                      maxAccelerator, maxBrake, maxClutch, 1023,//max
  15.                      false,//isADS
  16.                      1, //0 for ADS1015 and 1 for ADS1115
  17.                      &Joystick);
  18. bool sendData = false;
  19. #define DebugRefreshRate  200
  20. unsigned long currentMillis = 0, lastDebug = 0;
  21. void setup() {
  22.   delay(2000); //security delay to flash the code
  23.   SRTPedals.begin();
  24.   Joystick.begin(false);
  25. #if defined(DEBUG)
  26.   Serial.begin(9600);
  27. #endif
  28. }
  29. void loop() {
  30. #if defined(DEBUG)
  31.   currentMillis = millis();
  32.   if (currentMillis - lastDebug > DebugRefreshRate) {
  33.     sendData = true;
  34.     lastDebug = millis();
  35.   }
  36. #endif
  37.   SRTPedals.setPedals(sendData);
  38.   Joystick.sendState();
  39. #if defined(DEBUG)
  40.   sendData = false;
  41. #endif
  42. }


 
 
SRTPedals.ccp
 

Code :
  1. //#define LedMod //incompatible with the gearbox.
  2. int readings = 10; //min value is 1. Increasing the number of readings increase the precision but takes more time.
  3. #include "SRTPedals.h"
  4. #include <Arduino.h>
  5. #include "src/ADS1X15.h"
  6. #include "src/Joystick.h"
  7. //#define SAMD21
  8. #ifdef LedMod
  9. #include "src/Adafruit_NeoPixel.h"
  10. #ifdef __AVR__
  11. #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
  12. #endif
  13. #define LedPin1 8
  14. #define LedPin2 11
  15. #define LedPin3 14
  16. #define numberofLEDS 8
  17. #define brightness 20 //Higher values will make the Leds brighter.
  18. Adafruit_NeoPixel accelLed (numberofLEDS, LedPin1, NEO_GRB + NEO_KHZ800);
  19. Adafruit_NeoPixel brakeLed (numberofLEDS, LedPin2, NEO_GRB + NEO_KHZ800);
  20. Adafruit_NeoPixel clutchLed (numberofLEDS, LedPin3, NEO_GRB + NEO_KHZ800);
  21. #endif
  22. SRTPedals_::SRTPedals_(byte _nbrPedal,
  23.                        long _minInput0, long _minInput1, long _minInput2, long _minInput3,
  24.                        long _maxInput0, long _maxInput1, long _maxInput2, long _maxInput3,
  25.                        bool _isADS,
  26.                        byte _ADSType,
  27.                        Joystick_ * _joystickPtr)
  28.   : numberOfPedals(_nbrPedal),
  29.     isADS(_isADS), ADSType(_ADSType),
  30.     joystickPtr(_joystickPtr) {
  31.   minInput[0] = _minInput0;
  32.   minInput[1] = _minInput1;
  33.   minInput[2] = _minInput2;
  34.   minInput[3] = _minInput3;
  35.   maxInput[0] = _maxInput0;
  36.   maxInput[1] = _maxInput1;
  37.   maxInput[2] = _maxInput2;
  38.   maxInput[3] = _maxInput3;
  39.   if (isADS) {
  40.     readings=1;
  41.     if (ADSType == 1) {
  42.       ADS1115 ADS(0x48);
  43.     }
  44.     else {
  45.       ADS1015 ADS(0x48);
  46.     }
  47.   }
  48. }
  49. void SRTPedals_::begin() {
  50.   #ifdef SAMD21
  51.   analogReadResolution(12);
  52.   SerialUSB.begin(9600);
  53. #else
  54.   Serial.begin(9600);
  55. #endif
  56. #ifdef LedMod
  57. accelLed.begin();
  58. brakeLed.begin();
  59. clutchLed.begin();
  60. accelLed.setBrightness(brightness);
  61. brakeLed.setBrightness(brightness);
  62. clutchLed.setBrightness(brightness);
  63. fadeInOut();
  64. #endif
  65. joystickPtr->setAcceleratorRange(minInput[0], maxInput[0]);
  66. joystickPtr->setBrakeRange(minInput[1], maxInput[1]);
  67. joystickPtr->setThrottleRange(minInput[2], maxInput[2]); //this is clutch
  68.   if (isADS) {
  69.     if (ADSType == 1) {
  70.       ADS1.begin();
  71.       ADS1.setMode(1);
  72.       ADS1.setDataRate(7); //6 :475/s, 7 :860/s
  73.     }
  74.     else {
  75.       ADS0.begin();
  76.       ADS0.setMode(1);
  77.       ADS0.setDataRate(7); //6 :475/s, 7 :860/s
  78.     }
  79.   }
  80. }
  81. void SRTPedals_::setPedals(bool sendDebug) {
  82.   for (int i = 0; i < numberOfPedals; i++) {
  83.     setRawRead(i);
  84.     if (rawReadPedal != lastReadPedal[i]) {
  85.       setAxis(i);
  86.       lastReadPedal[i]=rawReadPedal[i];
  87.     }
  88.     #ifdef LedMod
  89.       if(i==0){
  90.      //accelLed.clear();
  91.       for (int j = 0; j < numberofLEDS; j++) {
  92.           accelLed.setPixelColor(j,accelLed.Color(0, 0.25*LedMap(i,j),0));
  93.       }
  94.       accelLed.show();
  95.     }
  96.           if(i==1){
  97.      //brakeLed.clear();
  98.       for (int j = 0; j < numberofLEDS; j++) {
  99.           brakeLed.setPixelColor(j,brakeLed.Color(0.25*LedMap(i,j), 0, 0));
  100.       }
  101.       brakeLed.show();
  102.     }
  103.           if(i==2){
  104.      //clutchLed.clear();
  105.       for (int j = 0; j < numberofLEDS; j++) {
  106.           clutchLed.setPixelColor(j,brakeLed.Color(0.25*LedMap(i,j)*(i+1==2), 0.25*LedMap(i,j)*(i+1==1), 0.25*LedMap(i,j)*(i+1==3)));
  107.       }
  108.       clutchLed.show();
  109.     }
  110. #endif
  111.     if (sendDebug) {
  112.       if (rawReadPedal[i] < minRead[i]) {
  113.         minRead[i] = rawReadPedal[i];
  114.       }
  115.       if (rawReadPedal[i] > maxRead[i]) {
  116.         maxRead[i] = rawReadPedal[i];
  117.       }
  118.   int pourcentage = constrain(map(rawReadPedal[i],minInput[i],maxInput[i],0,100),0,100) ;
  119. if(i==0){Serial.print("Throttle - " );}
  120. if(i==1){Serial.print("Brake    - " );}
  121. if(i==2){Serial.print("Clutch   - " );}
  122.       #ifdef SAMD21
  123. SerialUSB.println((String)pourcentage + "%. Raw value : " + rawReadPedal[i] + ". Min is : " + minRead[i] + ". Max is : " + maxRead[i] );
  124.       #else
  125.       Serial.println((String)pourcentage + "%. raw value : " + rawReadPedal[i] + ". Min is : " + minRead[i] + ". Max is : " + maxRead[i] );
  126.       #endif
  127.      
  128.     }
  129.   }
  130.   if (sendDebug) {Serial.println("" );}
  131. }
  132. byte SRTPedals_::getPedalNumber() {
  133.   return numberOfPedals;
  134. }
  135. void SRTPedals_::setAxis(int i) {
  136.   if (i == 0) {
  137.     joystickPtr->setAccelerator(rawReadPedal[i]);
  138.   }
  139.   if (i == 1) {
  140.     joystickPtr->setBrake(rawReadPedal[i]);
  141.   }
  142.   if (i == 2) {
  143.     joystickPtr->setThrottle(rawReadPedal[i]);
  144.   }
  145.   }
  146. #ifdef LedMod
  147. long SRTPedals_::LedMap(int pedal, int led) {
  148.  
  149.   long ledMapByte = constrain(rawReadPedal[pedal],minInput[pedal],maxInput[pedal]);
  150.   ledMapByte = map(ledMapByte, minInput[pedal], maxInput[pedal], 0, 300);
  151.   if(ledMapByte <led*300/numberofLEDS){
  152.     ledMapByte=0;}
  153.     else{
  154.      ledMapByte = map(ledMapByte, 300*led/numberofLEDS, 300*(led+1)/numberofLEDS, 0, 300);
  155.       }
  156.         if(ledMapByte >(led+1)*300/numberofLEDS)
  157.   {ledMapByte = 300;}
  158.    
  159.  
  160.   return ledMapByte;
  161. }
  162. #endif
  163. void   SRTPedals_::setRawRead(int i) {
  164.   if (isADS) {
  165.     if (ADSType == 1) {
  166.       rawReadPedal[i] = ADS1.readADC(i);
  167.     }
  168.     else {
  169.       rawReadPedal[i] = ADS0.readADC(i);
  170.     }
  171.   }
  172.   else {
  173.     rawReadPedal[i] = analogRead(i);
  174.    
  175.     for (int j =0; j<readings-1;j++){
  176.     rawReadPedal[i] += analogRead(i);
  177.    
  178.     }
  179.   }
  180. }
  181.   #ifdef LedMod
  182. void SRTPedals_::fadeInOut(){
  183.   for (int h =0; h<200;h++){
  184.   for (int i=0; i<3;i++){
  185.         if(i==0){
  186.      accelLed.clear();
  187.       for (int j = 0; j < numberofLEDS; j++) {   accelLed.setPixelColor(j,accelLed.Color(0, myExp(h), 0)); }
  188.       accelLed.show();
  189.     }
  190.           if(i==1){
  191.      brakeLed.clear();
  192.       for (int j = 0; j < numberofLEDS; j++) {          brakeLed.setPixelColor(j,brakeLed.Color(myExp(h), 0, 0));
  193.       }
  194.       brakeLed.show();
  195.     }
  196.           if(i==2){     clutchLed.clear();
  197.       for (int j = 0; j < numberofLEDS; j++) {          clutchLed.setPixelColor(j,clutchLed.Color(0, 0, myExp(h)));
  198.       }
  199.       clutchLed.show();
  200.     }
  201. }
  202. delay(5);
  203. }
  204. accelLed.clear();
  205. brakeLed.clear();
  206. clutchLed.clear();
  207. }
  208. #endif
  209. int SRTPedals_::myExp(int i){
  210. if (i<100){
  211. return i;}
  212. else{return 200-i;}
  213.  
  214. }


 
 
[i]SRTPedals.h
 

Code :
  1. #ifndef SRTPEDALS_H
  2. #define SRTPEDALS_H
  3. #include "src/ADS1X15.h"
  4. #include "src/Joystick.h"
  5. class SRTPedals_
  6. {
  7. private:
  8. byte numberOfPedals =0;
  9. unsigned long minInput[4] = {0,0,0,0};
  10. unsigned long minRead[4] = {32767,32767,32767,32767};
  11. unsigned long maxRead[4] = {0,0,0,0};
  12. unsigned long maxInput[4] = {0,0,0,0};
  13. float coeff[4] = {0,0,0};
  14. long rawReadPedal[4]= {0,0,0,0};
  15. long lastReadPedal[4]= {0,0,0,0};
  16. bool isADS;
  17. byte ADSType;
  18. ADS1115 ADS1;
  19. ADS1015 ADS0;
  20. void setAxis(int i);
  21. void   setRawRead(int i);
  22. Joystick_ * joystickPtr;
  23. void fadeInOut();
  24. int myExp(int i);
  25. protected:
  26. public:
  27. SRTPedals_(byte numberOfPedalsUser, long minInput1, long minInput2,  long minInput3, long minInput4,
  28.   long maxInput1, long maxInput2, long maxInput3, long maxInput4,
  29.   bool isADS,
  30.   byte ADSType,
  31.   Joystick_ * joystickPtr);
  32.   void begin();
  33.   byte getPedalNumber();
  34.   void setPedals(bool debug);
  35.   int getCalibratedValue(int i);
  36.   long LedMap(int pedal, int led);
  37. };
  38. #endif


 
 
 

n°412377
rat de com​bat
attention rongeur méchant!
Posté le 25-09-2023 à 18:35:21  profilanswer
 

Je vois que le mode DEBUG est activé, ça dit quoi (à travers le port série)?


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°412379
tchou@happ​y
Posté le 25-09-2023 à 18:54:47  profilanswer
 

j'ai modifié ces valeurs, et cela semble fonctionner.
A noter aussi que pour mes test sur plaque d’essais je n'avais pas de résistances de pull-down ( 10Kohm) et visiblement ça posai bien problème également...  :pt1cable:  
 

Code :
  1. #define DEBUG
  2. int minAccelerator = 0;
  3. int maxAccelerator = 10000;
  4. int minBrake = 0;
  5. int maxBrake = 10000;
  6. int minClutch = 0;
  7. int maxClutch = 10000;

n°412380
tchou@happ​y
Posté le 25-09-2023 à 18:55:15  profilanswer
 

rat de combat a écrit :

Je vois que le mode DEBUG est activé, ça dit quoi (à travers le port série)?


 
 
effectivement il était bien activé  :jap:  
 
Merci

n°412387
rat de com​bat
attention rongeur méchant!
Posté le 25-09-2023 à 19:33:51  profilanswer
 

C'est quoi tes entrées / ton câblage exactement? Et l'ADC de ton Arduino il a quelle résolution? Au pif je dirais les valeurs max devraient avoir la forme (2^n)-1 si c'est une valeur brute de l'ADC?


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°412390
tchou@happ​y
Posté le 25-09-2023 à 19:44:35  profilanswer
 

Alors je vais essayer de répondre , mais la fin de ton message c'est du chinois pour moi  :D  
 
Les entrées accélérateur et clutch sont de simples potentiomètres 10Kohm, la pédale de frein est un capteur de pression hydraulique 3 fils 0-5V  qui doit se brancher comme un potentiomètre. alim 0-5V et sortie signal vers une entrée analogique.
 
 
 
Cette phrase, désolé j'ai rien compris  :sweat:  
 
 Et l'ADC de ton Arduino il a quelle résolution? Au pif je dirais les valeurs max devraient avoir la forme (2^n)-1 si c'est une valeur brute de l'ADC?

n°412391
rat de com​bat
attention rongeur méchant!
Posté le 25-09-2023 à 20:08:07  profilanswer
 

Ok, mais tes potentiomètres sont câblés comment? Je demande car je ne vois pas cette histoire de résistance de tirage si c'est bien câblé. Aussi ton capteur il sort du 5V? Ton AVR il fonctionne en 5V ou 3,3V?

 

Pour le reste, oublie pour l'instant...


Message édité par rat de combat le 25-09-2023 à 20:08:23

---------------
Ne laissez pas mourir vos sujets en cours de route!
n°412397
tchou@happ​y
Posté le 25-09-2023 à 20:25:08  profilanswer
 

ha ok,
 
donc les potards je l'ai aient branchés comme cela, mais j'ai rajouté une résistance de 10Kohm entre le -0v ( gnd)  et la sortie signal des potentiomètres ( output) .
 
https://www.digikey.fr/-/media/Images/Article%20Library/TechZone%20Articles/2021/May/The%20Fundamentals%20of%20Digital%20Potentiometers%20and%20How%20to%20Use%20Them/article-2021may-the-fundamentals-of-digital-fig1.jpg?la=en&ts=7103c327-388b-4a84-8620-851590a9ec9f
 
Le capteur de pression sort un signal 0.5-4.5V d'après sa documentation  :jap:  
 
Pour l'arduino, je me suis embrouillé avec un micro pro que j'ai aussi et qui lui viens d'aliexpress.
 
Visiblement mon arduino micro serai un vrai ( ou une copie réaliste)  que j'ai acheté sur amazon. il est comme cela
https://m.media-amazon.com/images/I/61ApQKBleYL._AC_SL1000_.jpg
 
j'ai fait une photo je ne sais pas trop si ça réponds à ta question ...
Je pense que c'est un 5v non ?
 
[img]https://i.ibb.co/BGg68w7/IMG20230925202213.jpg[/img]


Message édité par tchou@happy le 25-09-2023 à 20:26:30
n°412398
rat de com​bat
attention rongeur méchant!
Posté le 25-09-2023 à 20:38:30  profilanswer
 

D'après le site officiel ton Arduino c'est bien du 5V, donc tu peux en effet y rentrer des signaux 0-5V. Ton potentiomètre est câblé correctement mais il ne faut PAS mettre de résistance de tirage supplémentaire; au contraire ça va rendre la réponse non-linéaire (mais pas envie de tracer la courbe la :o ).
 
Je reviens sur cette histoire d'ADC: Après vérification l'ADC (convertisseur analogique -> numérique) du AVR c'est du 10 bits, donc je suppose (j'ai pas lu tout le code Arduino :o ) que la valeur max - SI c'est bien une valeur ADC brute - devrait être de 1023 (soit (2^10)-1) plutôt. Après sur ce coup je peux me tromper, comme je disais peut-être la lib' utilisée fait une conversion d'un genre ou d'un autre.

n°412399
tchou@happ​y
Posté le 25-09-2023 à 20:43:14  profilanswer
 

les résistances de pull-dow j'avais mis ça car sur mes maigres test, j'avais l'impression que le signal n'était pas stable sans.
 
Mais bon j'ai fait ça vite fait sur un coin de bureau, je testerai sans à nouveau pour voir.  :jap:

n°412401
rat de com​bat
attention rongeur méchant!
Posté le 25-09-2023 à 20:48:16  profilanswer
 

Si tes potentiomètres sont mauvais ou si l'alim n'est pas stable faut plutôt voir du côté des condensateurs. Par contre faut pas choisir une valeur trop importante si tu mets un condensateur "en sortie" du potentiomètre car tu vas augmenter le temps de réponse (filtre passe-bas) du montage. Et pour ton capteur de pression il va probablement pas apprécier une charge capacitive.


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°412406
tchou@happ​y
Posté le 25-09-2023 à 21:00:07  profilanswer
 

c'était surement un problème de "masse" car j'avais le potentiomètre dans les mains et des fils volants sur la board  :D  
 
Pour l'alimentation, je pense utiliser simplement le cable micro-usb branché au PC  :o

n°412422
crazytiti
http://crazytiti.free.fr/
Posté le 25-09-2023 à 22:29:14  profilanswer
 

Met un condensateur de 22µF sur les broches gnd et +5V de l'arduino micro.
Les câbles USB sont pas ultimes pour alimenter des montages.

 

Attention il me semble que sur le micro les ADC ne sont pas au même endroit que sur un arduino UNO peut etre pour ça que ça ne fonctionne pas :
https://static4.arrow.com/-/media/arrow/images/miscellaneous/1/1117_arduino_micro_pinout.jpg?h=600&w=718&hash=FEEDD5A198B50B581FB8C730D245F653


Message édité par crazytiti le 25-09-2023 à 22:29:53

---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°412423
crazytiti
http://crazytiti.free.fr/
Posté le 25-09-2023 à 22:42:01  profilanswer
 

Je viens d'aller voir le site lebois-racing.fr
C'est chouette il fait pleins de trucs sympas et met à dispo les plans :bounce:

 

Edit : pour ton soucis essaye en mettant ces valeurs là :
int minAccelerator = 0;
int maxAccelerator = 10230;
int minBrake = 0;
int maxBrake = 10230;
int minClutch = 0;
int maxClutch = 10230;

 

Tu ajustera les min et max à la réalité de tes pédales par la suite.

 

edit : Par défaut le soft fait 10 conversions ADC et les additionnes donc la valeur peut aller de 0 à 10230.

Code :
  1. int readings = 10; //min value is 1. Increasing the number of readings increase the precision but takes more time.

Message cité 1 fois
Message édité par crazytiti le 25-09-2023 à 22:53:55

---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°412447
tchou@happ​y
Posté le 26-09-2023 à 10:00:06  profilanswer
 

Merci crazytiti pour ton message.
J'ajouterai le condo  :love:  :jap: , merci pour l'astuce.
 
J'ai pas tout expliqué hier soir mais j'avais déjà modifié ces paramètres car effectivement ça ne fonctionnai pas avec les valeurs misent d'origine.
J'ai testé pour les 2 potards embrayage et accélérateur et tout marche au poils.
Il me restera en effet les valeurs pour le capteur hydraulique  
 
int minAccelerator = 0;
int maxAccelerator = 10230;
int minBrake = 0;
int maxBrake = 10230;
int minClutch = 0;
int maxClutch = 10230;
 
 
 
Pour ceux qui aiment les photos voici l'ensemble du projet.  
J'ai modifié mon pédalier fanatec clubsport pour le passer en hydraulique avec un étrier 4 pistons.
D'origine il y a 2 capteurs à effet hall montés sur accelerateur et embrayage + un loadcell sur le frein. Sauf que un de mes capteur hall été mort et plus de pièces de dispo chez fanatec  :pt1cable:  
 
Donc j'ai remplacé les capteurs hall par des potards et j'en ai profité pour remplacer le loadcell par un capteur de pression et donc aussi supprimer la carte de commande de fanatec ( en vert sur les photos) qui ne gère pas correctement l'ensemble.
 
https://i.ibb.co/nrxPKsh/IMG20230924170607.jpg
https://i.ibb.co/2cTmbmF/IMG20230924170613.jpg
https://i.ibb.co/7Wbbt0j/IMG20230924181402.jpg
https://i.ibb.co/nRJRNYQ/IMG20230924181420.jpg
https://i.ibb.co/NFP3h5S/rouge-5v-noir0v-bleu-signal.jpg
 
 
 

EDIT:  il faut aussi que je me trouve un fichier STL pour imprimer une box fermée pour mon arduino micro.  
Mais je pense que je vais la dessiner moi même car je ne trouve pas ce que je veux sur thingiverse  :(


Message édité par tchou@happy le 26-09-2023 à 10:03:22
n°412501
rat de com​bat
attention rongeur méchant!
Posté le 26-09-2023 à 18:53:20  profilanswer
 

crazytiti a écrit :

edit : Par défaut le soft fait 10 conversions ADC et les additionnes donc la valeur peut aller de 0 à 10230.

Ah oui, bien vu!

 

Pour le capteur à pression, si tu nous donnes les tensions exactes mini/maxi on/je peux calculer les valeurs à mettre ou tu le fais toi-même, c'est une simple règle des trois. :)

 

Sinon pour les images, eh ben, c'est du sérieux on dirait. Perso je me souviens vaguement des volants tout en plastique pour jouer à je ne sais plus quel jeu vidéo de course, genre il y a 20/25 ans...


Message édité par rat de combat le 26-09-2023 à 18:54:32
n°412507
crazytiti
http://crazytiti.free.fr/
Posté le 26-09-2023 à 19:57:31  profilanswer
 

Pas dit que ce soit utile : de ce que j'ai compris du montage pour la pédale de frein, on ne devrait pas arriver à saturer le capteur en utilisation normale
Donc il conseille de le calibrer par rapport à une force suffisante correspondant a un bon gros freinage d'homme comme on dit


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°412791
tchou@happ​y
Posté le 28-09-2023 à 14:50:27  profilanswer
 

oui le pédalier c'est du solide, en fait c'est l’élément l plus important du poste de "pilotage".
 
J'ai dessiné et fabriqué une petite boîte car je ne trouvai rien qui convenait. il me manque plus que les connecteurs GX12 pour finir le tout
 
https://i.ibb.co/Khscctf/IMG20230927205748.jpg
https://i.ibb.co/ZfRKkb3/IMG20230927205807.jpg
https://i.ibb.co/K5WW9qx/IMG20230927205812.jpg
https://i.ibb.co/1d12mNV/IMG20230927205838-01.jpg
https://i.ibb.co/fvyx8ZX/IMG20230927205842.jpg

n°413001
froggycorp
Posté le 29-09-2023 à 18:36:10  profilanswer
 

Sur l'arduino, il y a un truc que je capte pas.
Vmax sur les pins = Vcc + 0.5v d'après la doc, mais pourquoi donc si Vcc < 5v ?
 
En gros, j'aurais bien voulu lire une tension 0-5v sur un arduino alimenté en 3v, en direct (sinon je peux faire un pont), mais je capte pas la limitation. Est-ce que c'est l'ADC qui va me renvoyer 0xFFFF parce que c'est > Vcc ?

n°413003
Natopsi
☄️Just end it already!☄️
Posté le 29-09-2023 à 18:56:04  profilanswer
 

T'as des diodes de protection (pour les décharges électrostatiques principalement) qui balancent tout ce qui serait au dessus de VCC + 0.5V vers VCC.


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°413005
rat de com​bat
attention rongeur méchant!
Posté le 29-09-2023 à 19:00:40  profilanswer
 

+1 pour Natopsi.
 
Sinon l'ADC ne va jamais te renvoyer 0xFFFF car c'est du 10 bit seulement. :o  
 
Sérieusement, un simple pont diviseur et c'est bon, mais attention: Selon la valeur du pont diviseur et avec la capacité d'entrée de l'ADC tu vas créer un filtre passe-bas, donc si tu veux échantilloner rapidement faut faire un peu attention / lire la doc et faire des calculs.


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°413040
froggycorp
Posté le 30-09-2023 à 08:47:19  profilanswer
 

salete de diode !
J'ai mis o pif les FF :)

Message cité 1 fois
Message édité par froggycorp le 30-09-2023 à 08:47:33
n°413041
rat de com​bat
attention rongeur méchant!
Posté le 30-09-2023 à 08:50:22  profilanswer
 

froggycorp a écrit :

salete de diode !

Au contraire, c'est très utile pour protéger la puce; même si ça peut être pénible. Faut respecter les specs quoi. :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°413120
nerosso
Posté le 30-09-2023 à 23:40:53  profilanswer
 

Salut au topic,
 
Je suis littéralement en train de péter un plomb avec un projet Arduino.
 
Sur la bread board tout fonctionne.
 
C'est un simple système à 2 interrupteurs pour actionner un moteur dans un sens ou dans un autre.
 
C'est en gros le projet 10 du livre officiel.
 
L'électronique de puissance est assurée par un Sabertooth.
 
Entre les bornes Up et Down j'ai des longs cables qui vont vers leurs interrupteurs respectifs.
 
Sauf que quand je branche les cables, j'ai comme un signal parasite et le moteur s'actionne intempestivement dans un sens et dans l'autre, comme s'il y avait un court-circuit entre les 2 boutons.
 
Sauf qu'il n'y a pas de court-circuit, car si j'utilise des cables courts de test tout fonctionne parfaitement.
 
Avez-vous une idée du phénomène électronique/physique qui se passe quand je branche un cable long? Ai-je un moyen d'y remédier? Augmenter les résistances de mise à 0V des bornes d'I/O de l'Arduino?
 
https://i.ibb.co/hmp5hRJ/IMG-9174.jpg
https://i.ibb.co/jMw7rFy/IMG-9177.jpg
 
J'ai réalisé mon propre shield pour brancher les boutons, mais avec une carte générique. Je n'ai aucun court-circuit au multimètre.
https://i.ibb.co/p1yZtqF/IMG-9175.jpg
 
Vue de dessous. J'ai fait un miroir pour plus facilement où va chaque connexion par rapport à la vue de dessus.
 
Résistance 10k ohm
https://i.ibb.co/Q96MrSX/IMG-9176.jpg
 
 
Pensant avoir mal soudé mon shield j'avais recréé un circuit uniquement avec des bouts de cables sans carte et j'avais exactement le même problème. C'est uniquement quand je branche des cables longs que ça ne marche plus.
 
Faut-il ajouter une ferrite sur les cables longs?


Message édité par nerosso le 30-09-2023 à 23:45:03
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  257  258  259  ..  278  279  280  281  282  283

Aller à :
Ajouter une réponse
 

Sujets relatifs
* Réparations de vos appareils électroniques & electromenager * 
Plus de sujets relatifs à : [arduino] Topic Unique blabla @ Arduino


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)