uControl
Febrero 22, 2017, 08:05:03 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Rampa de aceleración/desaceleración por software basic y/o picaxe  (Leído 917 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Carioquenho
PIC10F
*
Desconectado Desconectado

Mensajes: 15


« : Agosto 29, 2016, 08:31:01 »

Me encuentro en un callejón sin salida, no puedo -no sé-, como programar una rampa de acel/desaceleración para un control de velocidad -VARIABLE-PWM full "H", hecho con PICAXE18M2. Se controla con un potenciómetro. Toda lña parte de control funciona pero,-repito- no sé como hacer el programa de rampa acel/desacel.Si que alguien "iluminado" me pueda ayudar, desde ya agradézco las respuestas y su atención por adelantado.
Carioquenho
En línea
Carioquenho
PIC10F
*
Desconectado Desconectado

Mensajes: 15


« Respuesta #1 : Septiembre 02, 2016, 05:20:31 »

Me encuentro en un callejón sin salida, no puedo -no sé-, como programar una rampa de acel/desaceleración para un control de velocidad -VARIABLE-PWM full "H", hecho con PICAXE18M2. Se controla con un potenciómetro. Toda lña parte de control funciona pero,-repito- no sé como hacer el programa de rampa acel/desacel.Si que alguien "iluminado" me pueda ayudar, desde ya agradézco las respuestas y su atención por adelantado.
Carioquenho

Aquí expongo el programa del control con inversión de giro para un scooter, sólo me faltaría programar la rampa de acel/desaceleración:
Código:
config: 'setup
      
       'symbol Imax         = C.0 'pin 17    
       symbol Tmax         = C.1 'pin 18      
       symbol normal       = C.2 'pin 1      
       'symbol hi_lo        = C.5 'pin 4      
       symbol beeper       = C.6 'pin 15      
       symbol led_batt     = C.7 'pin 16    
       symbol led_falla    = B.0 'pin 6    
       symbol power_K1     = B.1 'pin 7      
       symbol freno        = B.2 'pin 8      
       symbol pwmPin       = B.3 'pin 9      
       symbol speed_control= B.4 'pin 10      
       symbol inverter_K3  = B.5 'pin 11      .
       symbol inverter_K2  = B.6 'pin 12      
       symbol batt         = B.7 'pin 13    
       low    power_K1                        
       low    inverter_K2                    
       low    inverter_K3                                      
       low    freno                          
       readadc batt, w8                      
       if w8 < 192 then batt_low              
       readadc tmax, w3                      
       'readadc imax, w4                      
       'if w4 > 179 then safe
       readadc10  speed_control, w5          
       if w5 <31 or  w5> 1000 then safe        
       if w5 <478 or w5> 546 then safe      
       pwmout 3, 0, 0                        
       high C.6
       pause 1000
       low  C.6
       pause 1000
       high C.6
       pause 2000
       low  C.6
       low freno
       high normal                          
       goto main
       stop


main:
      
      'readadc imax, w4
      'if w4 > 179 then safe
      readadc tmax, w3
      if w3 > 31  then safe
      readadc batt, w8                        
      if w8 < 192 then batt_low              
      readadc10 speed_control, w5
      if w5<31 or w5>1000 then safe        
      if w5<456 then moveL                
      if w5>550 then moveH                    
      pwmout 3, 0, 0
      low power_K1                            
      low inverter_K3
      low inverter_K2
      pause 2000
      low freno
      goto main
      
moveL:
      
      'readadc imax,w4
      'if w4> 179 then safe                  
      readadc tmax,w3
      if w3> 31 then safe                    
      low inverter_K2        
      low inverter_K3
      high power_K1                            
      pause 500                                
      high freno                              
      if w5<31 or w5>1010 then safe        
      w5=512-w5*2
      'if w5>943 then gosub speed_max
      'if pinC.5=0 then gosub low_speed        ;
      pwmout B.3,255, w5                    
      goto main
stop
              
moveH:
    
      'readadc imax, w4
      'if w4> 179 then safe                  
      readadc tmax, w3
      if w3> 31 then safe                    
      high inverter_K2        
      high inverter_K3
      high power_K1                            
      high freno                              
pause 500                                
if w5<31 or w5> 1010 then safe      
w5=2*w5-1023
      if w5=>877 then gosub speed_max
      'if pinC.5=0 then gosub low_speed
      pwmout B.3, 255, w5                      
goto main          
      stop      
      
      
low_Speed:
 
      w5=w5/2
      return
      stop
      
speed_max:
      
      w5=1023
      return
      stop
batt_low:
      
      high led_batt                            
      
      goto safe
      stop

retroceso:

            
      
safe:
      
      pwmout 3, 255, 0
      low power_K1                            
      low normal                              
      low  B.5                      
      low  freno                              
      for  b0= 1 to 5
      high C.6                                
      high B.0                                
      pause 500 '1000'2000 'para 16MHz 1000
      low  C.6                      
      low  B.0                                
      pause 500 '1000'2000'para 16MHz 1000
      high C.6                        
      high B.0                                
      pause 1000 '3000'6000'para 16MHz 1000  
      low  C.6
      low  B.0
      pause 500    
      next b0
      low  freno                                                          
      pause 1000'6000'para 16MHz 3000
      low B.0                                  
      stop
 
 
pote_cortado:
    
     pwmout 3, 255, 0
     low power_K1                            
     low freno
     low normal
     for b1= 1 to 4
     high C.6
     high B.0
     pause 2000
     low  C.6
     low  B.0
     pause 500
     high C.6
     high B.0
     pause 500
     low  C.6                      
     low  B.0
     pause 500
     high C.6
     high B.0
     pause 2000
     low  C.6                      
     low  B.0
     low  freno
     high B.0
     next b1
     goto safe
     stop  
    
'aceleración:
« Última modificación: Septiembre 02, 2016, 09:00:38 por HJ » En línea
supercurro
PIC12F
**
Desconectado Desconectado

Sexo: Masculino
Mensajes: 235



WWW
« Respuesta #2 : Septiembre 04, 2016, 07:07:43 »

Yo la rrampa la meteria en una matriz logarimica fija, luego dependiendo do de dejes el cursor continuar subiendo o bajando. La matriz de aceleracion seria logarimica de por ejemplo 255 pasos y el potenciometro igual dando al puente la parte proporcional logarimica.

saludos.
En línea

Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.048 segundos con 24 consultas. (Pretty URLs adds 0.005s, 2q)