Go Down

Topic: Rueda dentada jeep 4.0 (Read 3775 times) previous topic - next topic

surbyte

y que unidades son? 
0.556 segundos? mseg?
Mira que para 5000 estas poniendo 0.0001112 o sea si fueran segundos, tenemos 111.2 useg algo factible


surbyte

bueno ya lo tienes... usa regla de 3 inversa porque no es directa.
Mira porque. si a 1RPM le corresponden 556000 useg a 10 en directa serian 10 x eso pero acá son divido 10.

ya te he explicado como hacerlo ahora piensa y resuélvelo. 
modifica la ecuación que te he dado para que se ajuste a la ecuación que te escribí antes
Code: [Select]
void loop() {

  Pot = analogRead(A0);      // convierto a Voltios valor de A0 que va de 0 a 1023
  Serial.println(Pot);
  var = map(Pot, 0, 1023, 1, 5000); //Convierto 0-1023 a 0-100 rpm x lo tanto 102 cuentas son 10 readSqwPinMode
                                   // no pongo 0 rpm porque daría una división por 0 y eso es error en Arduino.

  dly278 = 2780000/var;
  dly556 = dly278*2;
  dly472 = 4720000/var;
  dly944 = dly472*2;


cambia esto tambien

Code: [Select]
unsigned int dly556, dly278, dly472, dly944;

Espero funcione!!
A ver si el resto lo resuelves con un poco de tu parte.

gsune

Muchas gracias amigo trataré de hacerlo aunque no entiendo nada, he estado tratando y no lo logro porque no se mucho de programación, mi trabajo es de mecánico y no dispongo de mucho tiempo ni conocimientos para resolver eso, pero muchisimas gracias por su invaluable ayuda

surbyte

Bien, igualmente esta resuelto.
Prueba y me dices. Pero en mi opinión, cuando tengas algun tiempo, pasa por Documentación y mira las clases en Youtube. Te van a orientar mucho.

gsune

Hola amigo se que debo aprender por mi cuenta, pero no se como empezar, quisiera por favor una pista, ayuda...
gracias

surbyte

quieres una pista con los reemplazos que te di? Está resuelto, solo reemplaza lo que te dí por lo que tienes.

gsune

Amigo cuando un cliente acude a mi taller yo con mucho gusto le resuelvo el problema y de paso le digo y le enseño como resolverlo, no se ni entiendo la arrogancia de las personas que "saben" de hacerse los importantes mandando a uno a aprender...
muchas gracias por su valiosa ayuda

surbyte

Primero tu no eres mi cliente. No cobro por este trabajo. No te debo gentileza.
Este es un foro de ayuda. Tu debes colaborar, no puedes venir que te hagamos todo, tienes que intentar esforzarte. Espero lo entiendas y no es arrogancia ni mucho menos. Si no lo comprendes lee las normas del foro.
Si quieres atención personalizada que es lo que le das a tus clientes, te hago un presupuesto.
Donde lo dice: en las Normas del foro.
No lo menciono para entrar en controversia contigo, pero si para que no hagas comentarios como este
Quote
Amigo cuando un cliente acude a mi taller yo con mucho gusto le resuelvo el problema y de paso le digo y le enseño como resolverlo, no se ni entiendo la arrogancia de las personas que "saben" de hacerse los importantes mandando a uno a aprender...
Te sugerí paso a paso como hacerlo. 
Ahora la resolución y con esto no respondo mas porque ahor asi me molesté.

Estos eran los pasos de mi respuesta anterior: 

Code: [Select]
void loop() {

  Pot = analogRead(A0);      // convierto a Voltios valor de A0 que va de 0 a 1023
  Serial.println(Pot);
  var = map(Pot, 0, 1023, 1, 100); //Convierto 0-1023 a 0-100 rpm x lo tanto 102 cuentas son 10 readSqwPinMode
                                   // no pongo 0 rpm porque daría una división por 0 y eso es error en Arduino. 

  dly278 = 27800/var;
  dly556 = dly278*2;
  dly472 = 47200/var;
  dly944 = dly472*2;


por esto
Code: [Select]
void loop() {

  Pot = analogRead(A0);      // convierto a Voltios valor de A0 que va de 0 a 1023
  Serial.println(Pot);
  var = map(Pot, 0, 1023, 1, 5000); //Convierto 0-1023 a 0-100 rpm x lo tanto 102 cuentas son 10 readSqwPinMode
                                   // no pongo 0 rpm porque daría una división por 0 y eso es error en Arduino.

  dly278 = 2780000/var;
  dly556 = dly278*2;
  dly472 = 4720000/var;
  dly944 = dly472*2;


y tampoco puedes reemplazar esto

Code: [Select]
unsigned int dly556, dly278, dly472, dly944;
por esto

Code: [Select]
unsigned long dly556, dly278, dly472, dly944;

para finalmente tener esto
Code: [Select]
#define led1  13
#define led2  12

unsigned int dly556, dly278, dly472, dly944;
unsigned int Pot, var;

// the setup routine runs once when you press reset:
void setup() {               
 // initialize the digital pin as an output.
 pinMode(led1, OUTPUT);
 pinMode(led2, OUTPUT);
 
Serial.begin(9600); // solo para ver los datos en el monitor serie
}
// the loop routine runs over and over again forever:
// 10 rpm
//1

void loop() {

  Pot = analogRead(A0);      // convierto a Voltios valor de A0 que va de 0 a 1023
  Serial.println(Pot);
  var = map(Pot, 0, 1023, 1, 5000); //Convierto 0-1023 a 0-100 rpm x lo tanto 102 cuentas son 10 readSqwPinMode
                                   // no pongo 0 rpm porque daría una división por 0 y eso es error en Arduino.

  dly278 = 2780000/var;
  dly556 = dly278*2;
  dly472 = 4720000/var;
  dly944 = dly472*2;

  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly472);
  digitalWrite(led2, HIGH);
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly472);

  // 2
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH); 
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly944);

  //3
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly944);
  //4
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH); 
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH); 
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW); 
  delayMicroseconds(dly472);
  digitalWrite(led2, LOW);
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly472);
  //5
  digitalWrite(led1, HIGH); 
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW); 
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH); 
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly944);
  //6
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);             
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH); 
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly278);
  digitalWrite(led1, HIGH);   
  delayMicroseconds(dly556);               
  digitalWrite(led1, LOW);   
  delayMicroseconds(dly944);
}

gsune

Gracias de nuevo por su tiempo, estoy dispuesto a pagar si ud. me ayuda. saludos

gsune


avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "F:\ARDUINO\arduino-1.6.7-windows\arduino-1.6.7\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM2
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: reading input file "C:\Windows\Temp\builddd166dd521da4d57af924dd898879e5e.tmp/sketch_jan351a.ino.hex"
avrdude: writing flash (3982 bytes):

Writing | ################################################## | 100% 0.70s

avrdude: 3982 bytes of flash written
avrdude: verifying flash memory against C:\Windows\Temp\builddd166dd521da4d57af924dd898879e5e.tmp/sketch_jan351a.ino.hex:
avrdude: load data flash data from input file C:\Windows\Temp\builddd166dd521da4d57af924dd898879e5e.tmp/sketch_jan351a.ino.hex:
avrdude: input file C:\Windows\Temp\builddd166dd521da4d57af924dd898879e5e.tmp/sketch_jan351a.ino.hex contains 3982 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.48s

avrdude: verifying ...
avrdude: 3982 bytes of flash verified

avrdude done.  Thank you.


surbyte

No quiero que me pagues. 
Te he dado la  posible solución. Pruébala y luego vemos.



Go Up