Autor Tema: BascomAVR- Mis proyectos  (Leído 9688 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4861
BascomAVR- Mis proyectos
« en: 06 de Abril de 2011, 14:23:00 »
Despues de tantos meses buscando informacion sobre CONTROL REMOTO, PWM y LED aqui os presentares todos mis proyectos.

Código: [Seleccionar]
'************************************
'* Control Remote Tester         *
'* 07.09.2008                         *
'************************************
$regfile = "attiny2313.dat"                                 ' elegi el 2313 porque es facil de conseguir
$crystal = 4000000                                          'Usamos cristal interno
$lib "mcsbyte.lbx"
$hwstack = 32
$swstack = 10                                               '
$framesize = 40
'$sim


' Configuration de el LCD
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2       'Pins (Port B) für LCD-Modul definieren

Config Lcd = 16 * 2                                         'Uso LCD 16x2
'Config Portb = Output



'configuramos el Puerto D.2 como entrada
Config Pind.2 = Input                                       'puerto D.2 para el iR TSOP1738

Config Rc5 = Pind.2                                         'definimos el puerto D.2 como RC5
Portd.2 = 1                                                 'Activamos la resistencia interna

Enable Interrupts                                           'activamos la interrupciones

'Definimos variables
Dim Direcion As Byte
Dim Comando As Byte

Cursor Off Noblink                                          'Desactivamos el cursor
Cls

Locate 1 , 1                                                'borramos el contenido del LCD
Lcd "     Control        "                                  'nuestros textos
Locate 2 , 2
Lcd "Remoto Tester "
Waitms 2500

Cls
Locate 1 , 1
Lcd "Solo RC5      "
Locate 2 , 2
Lcd "Protocologo "
 Waitms 2500
Cls
Locate 1 , 1
Lcd " Esperando   "
Locate 2 , 2
Lcd "Comandos  "
Do
  Config Pind.2 = Input                                     'Puerto D.2 entrada
  Getrc5(direcion , Comando)                                'recibimos datos

  If Direcion <> 255 Then                                   'si recibimos una direcion
      Comando = Comando And &B01111111                      'toggle bit
      Cls                                                   'borramos el contenido anterior del LCD

      If Direcion = 0 Then                                  'direcion para TV
      Locate 1 , 1
      Lcd "Television"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'recibimos direcion y comando
      End If

      If Direcion = 5 Then                                  'Direcion para Video grabador
      Locate 1 , 1
      Lcd "Video grabador 1"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'recibimos direcion y comando
      End If

      If Direcion = 6 Then                                  'Direcion para Video grabador
      Locate 1 , 1
      Lcd "Video grabador 2"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'recibimos direcion y comando
      End If

      If Direcion = 8 Then                                  'Direcion para Receptor de Satelite
      Locate 1 , 1
      Lcd "SAT-Receptor 1"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'Recibimos comando y direcion
      End If

      If Direcion = 9 Then                                  'Direcion para Camara de Video
      Locate 1 , 1
      Lcd "Camara de Video"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'Recibimos direciones y comandos
      End If

      If Direcion = 10 Then                                 'Direcion para Receptor de Satelite
      Locate 1 , 1
      Lcd "SAT-Receptor 2"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'Recibimos direciones y comandos
      End If

      If Direcion = 17 Then                                 'Direcion para el Receptor de Radio
      Locate 1 , 1
      Lcd "Receptor/ Radio"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'Recibimos direciones y comandos
      End If

      If Direcion = 18 Then                                 'Direcion para grabador de Cassete
      Locate 1 , 1
      Lcd "Cassete"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando           'Recibimos direciones y comandos
      End If

      If Direcion = 20 Then                                 'Direcion para el reproducto de CD
      Locate 1 , 1
      Lcd "Rep.CD"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'Recibimos direciones y comandos
      End If

      If Direcion = 21 Then                                 'Direcion para el Gira Disco
      Locate 1 , 1
      Lcd "Gira Disco"
      Locate 2 , 1
      Lcd "DIR.:" ; Direcion ; "  CMD.:" ; Comando          'Recibimos direciones y comandos
      End If

   End If

  Loop

End






Como veran esta todos muy detallados y facil de comprender
a continuacion os presento tambien un receptor iR para controlar LED, aqui se controla 4 Led (Rojo,Verde,Azul y Amarillo)


Aqui a el codigo
Código: [Seleccionar]
'______________________________________________________________________
'Receptor iR para Led RGBY
' compiler con Bascom AVR Version 2.0.4.0
'No comercial
'Gracias a los amigos bascom-forum.de  por su gran ayudas
' Rafael Biad Jimenez
'27.03.2011
'Atmega168 tiene  6 PWM  HW
'Atencion este Receptor solo Funciona con el Protocologo RC5 de Philips
' o con el mando a distancia VIVANCO UR9    con otros no lo he probado
'Si quieren saber si vuestros mando a distancia usa este protocolo puede montar
' el control de mando Tester, asi sabran que direcion recibe y tambien el comando
' o los comandos.
'_____________________________________________________________________




$regfile = "m168def.dat"                                    ' aqui usamos el Atmega168 que posee 6 PWM Hw
$crystal = 8000000                                          'Interne Fuses  Clock Division by 8
$hwstack = 40
$swstack = 16
$framesize = 32
$lib "mcsbyte.lbx "                                         'usaremos la libreria byte para optimatizar el codigo

'Configuration de los puertos
Config Portb.1 = Output                                     ' LED1 Rojo
Config Portb.2 = Output                                     'LED2 Verde
Config Portb.3 = Output                                     'LED3 Azul
Config Portd.3 = Output                                     'LED4 Amarillo
Config Portd.2 = Input                                      ' irR TSOP1738
Config Rc5 = Pind.2                                         'aqui activamos la resistencia interna del puerto D2

'Config Timer1 y Timer2 para PWM . atencion Timer0 trabaja interno con el protocologo GetRC5 de Bascom
'Timer0 trabaja con el protocologo RC5
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer2 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
'Declaration Variable

Dim Pwmval1 As Byte                                         ' Variable para Pwm1(  PortB.1=OC1A )
Dim Pwmval2 As Byte                                         '  Variable para Pwm2( PortB.2-=OC1B)
Dim Pwmval3 As Byte                                         'Variable para Pwm(PortB.3=OC2A)
Dim Pwmval4 As Byte                                         'Variable para Pwm(Port.D=OC2B
Dim Direcion As Byte                                        'Variable para la direcion RC5
Dim Comando As Byte
                                          'Variable para los Comandos de RC5

' Todos pwm comienzan desde 0
Pwmval1 = 0
Pwmval2 = 0
Pwmval3 = 0
Pwmval4 = 0
Enable Interrupts                                           ' permitimos todas las interrupciones
'_______________________________________________________________

Do

Getrc5(direcion , Comando)                                  ' aqui llamamos el generador internos del protocologo RC5

      If Direcion = 5 Then                                  ' Aqui usamos la direcion 5 para la grabador de Videos
      Comando = Comando And &B01111111                      ' Comando para Recibir todos en 36Khz
      End If

Select Case Comando
    Case 0 :
            Toggle Portb.0                                  ' Aqui invertimos el estatuto de la entrada iR

'__  Control para los pulsadores del mando a distancia
   Case 1 :                                                 'Tecla numero 1 para el mando a distancia
           If Pwmval1 < 246 Then                            ' Funcion Aumenta el Dusty de 0% a 100%
            Pwmval1 = Pwmval1 + 5                           ' + LED ROJO
            Else
            End If


    Case 2 :                                                'Tecla numero 1 para el mando a distancia
             If Pwmval1 > 0 Then                            'Disminuye el Dusty de 100% a 0%
             Pwmval1 = Pwmval1 - 5                          ' - LED ROJO
             Else
             End If

    Case 3:                                                 'Tecla numero 3  la misma funcion p:
            If Pwmval2 < 246 Then
            Pwmval2 = Pwmval2 + 5                           ' + LED VERDE
            Else
            End If

    Case 4 :
            If Pwmval2 > 0 Then                             ' - LED VERDE
            Pwmval2 = Pwmval2 - 5
            Else
            End If

    Case 5 :
            If Pwmval3 < 246 Then                           ' + LED AZUL
            Pwmval3 = Pwmval3 + 5
            Else
            End If

    Case 6 :                                                ' - LED AZUL
            If Pwmval3 > 0 Then
            Pwmval3 = Pwmval3 - 5
            Else
            End If

    Case 7 :                                                ' + LED AMARILLO
            If Pwmval4 < 246 Then
            Pwmval4 = Pwmval4 + 5
            Else
            End If

    Case 8 :                                                ' - LED AMARILLO
             If Pwmval4 > 0 Then
             Pwmval4 = Pwmval4 - 5
             Else
             End If

' Aumentando todos PWMVAL-1-2-3-4  desde 0% a 100%
   Case 32:                                                 ' Comando Canal arriba aumenta todos los PWM desde 0% a 100%


             If Pwmval1 < 246 Then                          'Disminuye el Dusty de 100% a 0%
             Pwmval1 = Pwmval1 + 5                          ' - LED ROJO
             Else
             End If


           If Pwmval2 < 246 Then                            ' - LED VERDE
            Pwmval2 = Pwmval2 + 5
            Else
            End If


              If Pwmval3 < 246 Then                         '-Azul
              Pwmval3 = Pwmval3 + 5
              Else
              End If


             If Pwmval4 < 246 Then                          '-Amarillo
             Pwmval4 = Pwmval4 + 5
             Else
             End If

' Disminuyendo todos PWMVAL-1-2-3-4 desde  100% a 0%
   Case 33:                                                 ' Canal abajo disminuye todos los PWM desde 100% a 0%


             If Pwmval1 > 0 Then                            'Disminuye el Dusty de 100% a 0%
             Pwmval1 = Pwmval1 - 5                          ' - LED ROJO
             Else
             End If


             If Pwmval2 > 0 Then                            ' - LED VERDE
             Pwmval2 = Pwmval2 - 5
             Else
             End If


             If Pwmval3 > 0 Then                            ' -Azul
             Pwmval3 = Pwmval3 - 5
             Else
             End If


             If Pwmval4 > 0 Then
             Pwmval4 = Pwmval4 - 5                          ' -Amarillo
             Else
             End If


End Select




Pwm1a = Pwmval1
Pwm1b = Pwmval2
Ocr2a = Pwmval3
Ocr2b = Pwmval4
:

Loop





y aqui un Video
 

« Última modificación: 11 de Abril de 2011, 15:49:53 por stk500 »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17727
    • MicroPIC
Re: BascomAVR- Mis proyectos
« Respuesta #1 en: 06 de Abril de 2011, 14:33:07 »
¡Como te diviertes, abuelo!

Enhorabuena, muy chulo el vídeo.
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3377
    • PICKEY ELECTRÓNICA
Re: BascomAVR- Mis proyectos
« Respuesta #2 en: 06 de Abril de 2011, 20:53:36 »
Un proyecto realmente luminoso. Felicidades por el éxito.
Saludos desde Granada, España.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4861
Re: BascomAVR- Mis proyectos
« Respuesta #3 en: 07 de Abril de 2011, 14:20:32 »
¡Como te diviertes, abuelo!

Enhorabuena, muy chulo el vídeo.

 :5] si tu suspiera la mala noche que he pasado leyendo y esperimentando con los proyectos hasta cogerle el truco :5]

Gracias por tu opinion tio

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4861
Re: BascomAVR- Mis proyectos
« Respuesta #4 en: 07 de Abril de 2011, 14:21:48 »
Un proyecto realmente luminoso. Felicidades por el éxito.
gracias y esperen mas cosas
le voy a poner una chincheta  :P

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
Re: BascomAVR- Mis proyectos
« Respuesta #5 en: 07 de Abril de 2011, 23:06:02 »
 :)
Valla envidia de la sana..me alegra que ya estés rodando con los Atmel, yo hasta ahora no puedo..debido a que me entusiasme mucho con freescale , compré varios HCS08, un programador OSBDM con JB 16..y como el windows hizo que perdiera mi disco duro con valiosa información, pued ahora solo estoy con linux..y resulta que Freescale en linux está bastante flojo..a pesar de su CW10.1, hasta ahora no puedo hacer funcionar el OSBDM y paso de instalar windows solo por eso....asi que decidí mirar los atmel..y lo que he leído me parece muy bueno, solo que acá venden los AT89S51 de 40 pines, muy barato..pues que querido empezar pero la falta de tiempo no deja a veces..quiero aprovechar este hilo y preguntarte, si para programar los Atmel como el que te menciono hay que primero programar los fusibles de configuración, antes de meterle el programa de prueba? y si eso hay que hacerlo siempre que se cambie de código?

Saludos y en hora buena



Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4861
Re: BascomAVR- Mis proyectos
« Respuesta #6 en: 08 de Abril de 2011, 03:24:10 »
:)
Valla envidia de la sana..me alegra que ya estés rodando con los Atmel, yo hasta ahora no puedo..debido a que me entusiasme mucho con freescale , compré varios HCS08, un programador OSBDM con JB 16..y como el windows hizo que perdiera mi disco duro con valiosa información, pued ahora solo estoy con linux..y resulta que Freescale en linux está bastante flojo..a pesar de su CW10.1, hasta ahora no puedo hacer funcionar el OSBDM y paso de instalar windows solo por eso....asi que decidí mirar los atmel..y lo que he leído me parece muy bueno, solo que acá venden los AT89S51 de 40 pines, muy barato..pues que querido empezar pero la falta de tiempo no deja a veces..quiero aprovechar este hilo y preguntarte, si para programar los Atmel como el que te menciono hay que primero programar los fusibles de configuración, antes de meterle el programa de prueba? y si eso hay que hacerlo siempre que se cambie de código?

Saludos y en hora buena



Muchas gracias Marvicdigital,
pues que lastima que no seguiste con los Atmel ya que hay tantas informacion como los Pic y muy buenos otros proyectos.
pues bien respecto a tu pregunta sobre programar los Fuses, los fuses de los atmel lo puede programar ante o despues de programar el Flash, pero ,pero pero, muchos cuidados con el SPI , este Fuse nunca debe desactivarlo sino tiene el programador para activarlo otras vez, debe saber que los Atmel se pueden programar de varias manera lee aqui http://www.todopic.com.ar/foros/index.php?topic=33743.0  por eso me compre el programador STK500 :P
otros Errores que cometemos los que aprendemos es al programar el micro con Cristal exterior y al volver programar no olvidamos de ponerl el cristal ya que sin el cristal no podra programarlo otra vez.
espero haberte sacado de tu dudas, si tiene mas dudas por aqui estamos.

Saludos y gracias por tu comentarios.

Desconectado Maxtronic

  • PIC10
  • *
  • Mensajes: 27
Re: BascomAVR- Mis proyectos
« Respuesta #7 en: 08 de Abril de 2011, 15:10:54 »
Somos pocos que trabajan con  Atmel.


Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6759
Re: BascomAVR- Mis proyectos
« Respuesta #8 en: 08 de Abril de 2011, 15:50:13 »
¡Como te diviertes, abuelo!

Enhorabuena, muy chulo el vídeo.

 :5] si tu suspiera la mala noche que he pasado leyendo y esperimentando con los proyectos hasta cogerle el truco :5]

Gracias por tu opinion tio


Pero eso es la diversión!  :-/ Romperse el coco hasta que sale!  :mrgreen: Felicidades que ha quedado magnifico!!


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4861
Re: BascomAVR- Mis proyectos
« Respuesta #9 en: 08 de Abril de 2011, 15:59:32 »
 :mrgreen: muchas gracias Maestro Suky  :mrgreen: y vendran mas cosas, estoy en eso

Saludos

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
Re: BascomAVR- Mis proyectos
« Respuesta #10 en: 08 de Abril de 2011, 20:17:27 »
Somos pocos que trabajan con  Atmel.



Eso debe ser por que no existe algo igual al CCS, es que vamos eso de que te hagas un codigo escribiendo solo:

#configure RS-232 Tx,_Rx, Datos enviados, datos recibidos, si son iguales entonces #Escribir_LCD "son iguales", si no entonces, Printer_USB "error en puerto usb·..

 :D

Algo asi..yo me atrevo a decir y pasar por ignorante, a que existe mas proyectos de PIC por el CCS, que si fuera por solo C o Assembler, creo que tendríamos una décima parte de lo que existe hoy en día .. :mrgreen:
Ya me estoy preparando para unirme a la corriente Atmel...

Saludos

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5440
    • Electrónica Didacta
Re: BascomAVR- Mis proyectos
« Respuesta #11 en: 08 de Abril de 2011, 22:47:15 »
Felicitaciones RAFA!!!!


y gracias por compartirlo.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek


 

anything