spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Robotica di base > Informatica

Rispondi
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 18-08-2014, 17.10.40
L'avatar di landyandy
landyandy landyandy non è collegato
Robottaro sostenitore
 
Data registrazione: 07-02-2010
Residenza: Abruzzo - Teramo
Età : 44
Messaggi: 2,330
Potenza reputazione: 331
landyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua fama
Predefinito Ponte H con un joystik

Allora la mia ignoranza interdisciplinare è nota e quando debbo fare una cosa oltre le mie capacità ecco che il forum è il mio maestro.

Sto cercando di movimentare via software, un motore DC tramite un ponte H formato da un classico l298N che risulta perfettamente funzionante.

Se io converto il valore di un potenziometro in una variabile byte, (leggo il valore tramite un AD), ottengo un valore di 1 alla minima resistenza e 255 alla massima resistenza.

A questo punto io voglio mettere il potenziometro al centro ed ottenere un motore fermo, tutto a destra un avanzamento massimo con rotazione oraria e tutto a sinistra un avanzamento massimo con rotazione anti-oraria.

Quello che mi sfugge è la logica di ragionamento per una parte della rotazione.

Per la rotazione oraria, partendo dal centro in cui il motore è fermo dico (in pseudo codice):

IF trimmer > 128 then
trimmer = trimmer - 128
trimmer = trimmer * 2
PWM = trimmer

In questo modo ottengo che con il trimmer al centro (128 decimale) il motore è fermo.
Se aumento proporzionalmente il valore della variabile (fino a 255), avrò che alla massima rotazione, il PWM sarà massimo (a passi di due % per volta).

Se invece vado al contrario, nasce il problema in quanto come faccio ad ottenere un valore di PWM pari a 255 quando il trimmer lo ruoto tutto a sinistra? (valore resistivo inversamente proporzionale al PWM).




Si è capito qualcosa oppure ho scritto troppo?





saluti
landyandy
__________________
------------------------------------------------




-----------------------------------------------
Rispondi citando
  #2  
Vecchio 18-08-2014, 17.58.35
L'avatar di aldofad
aldofad aldofad non è collegato
Robottaro sostenitore
 
Data registrazione: 22-01-2007
Residenza: Treviso
Età : 42
Messaggi: 936
Potenza reputazione: 85
aldofad Il suo nome è noto a tutti
Invia un messaggio via MSN a aldofad Send a message via Skype™ to aldofad
Predefinito

Eccoti:
Codice:
byte pwm;
byte dir;

void calcPower(byte trimmer) {
  Serial.print(" ** Trimmer ");
  Serial.println(trimmer);
  if(trimmer>=0&&trimmer<=127) {
    dir = 0;
    pwm = map(127-trimmer, 0, 127, 0, 255);
  } else {
    dir = 1;
    pwm = map(trimmer-128, 0, 127, 0, 255);
  }
}

void printPower() {
  Serial.print("PWM ");
  Serial.print(pwm);
  Serial.print(" Direction ");
  Serial.println(dir);
  Serial.println(" ");
}

void setup() {
  Serial.begin(9200);
  calcPower(0);
  printPower();
  
  //un valore a caso
  calcPower(27);
  printPower();
  
  //questo e' il centro 
  calcPower(127);
  printPower();
  calcPower(128);
  printPower();
  
  //un valore a caso
  calcPower(201);
  printPower();
  calcPower(255);
  printPower();
}

void loop() {}
Ti da questo come risultato che è la logica corretta nel tuo caso, da notare che il centro è dato sia da 127 che 128:
** Trimmer 0
PWM 255 Direction 0

** Trimmer 27
PWM 200 Direction 0

** Trimmer 127
PWM 0 Direction 0

** Trimmer 128
PWM 0 Direction 1

** Trimmer 201
PWM 146 Direction 1

** Trimmer 255
PWM 255 Direction 1
Rispondi citando
  #3  
Vecchio 18-08-2014, 18.04.49
bernie bernie non è collegato
Robottaro sostenitore
 
Data registrazione: 24-07-2003
Messaggi: 628
Potenza reputazione: 81
bernie E' sulla buona strada
Predefinito

Ciao Andy
Se colleghi il ponte H in modalità LAP , ti ritrovi che con un duty del 50% il motore sta fermo . Quindi se metti come valore del duty il valore del potenziometro con 128 dovresti avere il duty al 50% =motore fermo . con 255 duty 100% rotazione in senso orario con 0 duty 0% rotazione in senso antiorario.
bisogna vedere la risoluzione del ADC e la risoluzione del PWM ed eventualmente applicare i dovuti divisori/moltiplicatori.
Immagino che lo stai provando in proton , o ti sei gia convertito al C

Aloha
P.S. qui ci sono solo 44°C
Rispondi citando
  #4  
Vecchio 18-08-2014, 18.14.00
L'avatar di devil2003
devil2003 devil2003 non è collegato
Robottaro sostenitore
 
Data registrazione: 23-05-2004
Residenza: Napoli
Età : 61
Messaggi: 1,846
Potenza reputazione: 259
devil2003 La sua reputazione è oltre la sua famadevil2003 La sua reputazione è oltre la sua famadevil2003 La sua reputazione è oltre la sua famadevil2003 La sua reputazione è oltre la sua famadevil2003 La sua reputazione è oltre la sua famadevil2003 La sua reputazione è oltre la sua famadevil2003 La sua reputazione è oltre la sua fama
Predefinito

Ciao Andy, se leggi uno dei primi post miei che presentavo Rev, si è parlato molto di un maledetto potenziometro che volevo assolutamente togliere per automatizzare con un microcontrollore il tutto, pensa che Rev è nato come radiocomandato e chi mandava avanti o indietro i motori erano 2 potenziometri usati come cloche.
L'esempio di aldofad è buona, i valori sono 0 indietro 128 fermo 255 avati.
__________________
Ciao
Ciro.
__________________


Rispondi citando
  #5  
Vecchio 18-08-2014, 18.14.31
bernie bernie non è collegato
Robottaro sostenitore
 
Data registrazione: 24-07-2003
Messaggi: 628
Potenza reputazione: 81
bernie E' sulla buona strada
Predefinito

Con proton , se il pic ha un PWM hw il comando è
HPWM pin,dutycicle,frequenza .
Se colleghi il ponte H in modalità LAP , dovresti aver risolto i tuoi problemi .
Aloha
P.S. sono le 10 di sera e non si respira dal caldo !!!!!!!
Rispondi citando
  #6  
Vecchio 18-08-2014, 19.40.45
L'avatar di landyandy
landyandy landyandy non è collegato
Robottaro sostenitore
 
Data registrazione: 07-02-2010
Residenza: Abruzzo - Teramo
Età : 44
Messaggi: 2,330
Potenza reputazione: 331
landyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua fama
Predefinito

Mamma mia quanto materiale ragazzi.
Grazie di cuore mi metto al lavoro e vi faccio sapere.


Ho messo insieme un po' di ginigilli ed è venuto su un bel robottino, (parola grossa ), a tre ruote.



saluti
landyandy
__________________
------------------------------------------------




-----------------------------------------------
Rispondi citando
  #7  
Vecchio 18-08-2014, 19.58.33
L'avatar di landyandy
landyandy landyandy non è collegato
Robottaro sostenitore
 
Data registrazione: 07-02-2010
Residenza: Abruzzo - Teramo
Età : 44
Messaggi: 2,330
Potenza reputazione: 331
landyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da bernie Visualizza messaggio
Ciao Andy
Immagino che lo stai provando in proton , o ti sei gia convertito al C
ssshh non farti sentire da Astro, ma in realtà questo progetto lo sto facendo in "Robobasic" che è ancora più facile del Proton.












Evviva chi ha inventato il BASIC!!!









Citazione:
Orginalmente inviato da bernie Visualizza messaggio
Aloha
P.S. qui ci sono solo 44°C






Se puo' consolarti mercoledì tornano le piogge.








Mi ricordavo che eri emiliano o sbaglio?

mò si ben..



saluti assolati
landyandy
__________________
------------------------------------------------




-----------------------------------------------
Rispondi citando
  #8  
Vecchio 18-08-2014, 20.18.35
L'avatar di astrobeed
astrobeed astrobeed non è collegato
Robottaro sostenitore
 
Data registrazione: 18-03-2004
Residenza: Roma
Età : 60
Messaggi: 3,377
Potenza reputazione: 350
astrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da landyandy Visualizza messaggio
ssshh non farti sentire da Astro, ma in realtà questo progetto lo sto facendo in "Robobasic" che è ancora più facile del Proton.
Perché non usi questo?
__________________
Bye
Rispondi citando
  #9  
Vecchio 19-08-2014, 05.53.09
bernie bernie non è collegato
Robottaro sostenitore
 
Data registrazione: 24-07-2003
Messaggi: 628
Potenza reputazione: 81
bernie E' sulla buona strada
Predefinito

Andy, abbassa il tiro di soli 3-4000 km e poi capisci dove sono

se la vuoi facile , io ti consiglio questo http://cq.cx/ladder.pl

Aloha
Rispondi citando
  #10  
Vecchio 19-08-2014, 05.55.47
bernie bernie non è collegato
Robottaro sostenitore
 
Data registrazione: 24-07-2003
Messaggi: 628
Potenza reputazione: 81
bernie E' sulla buona strada
Predefinito

Dimenticavo , Andy la prossima volta che mi chiami emiliano , ti tolgo la parola , non ho niente contro gli emiliani( Anto non me ne volere , lo sai che ti stimo tantissimo ), ma IO sono romagnolo DOCG!!!
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
ponte h D-3BO Arduino 6 20-09-2012 10.08.01
ponte h lucaba Elettronica 7 10-07-2012 20.18.55
Ponte H!!! totonno87 Forum generale 7 22-03-2012 12.12.09
Ponte H Bis lcatini Elettronica 1 23-08-2005 17.39.41
Ponte H lcatini Elettronica 4 21-08-2005 15.02.56


Tutti gli orari sono GMT. Adesso sono le: 11.51.43.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB