PROYECTOS PRACTICOS CON TARJETA EXPERIMENTAL POR Hellmut1956

Hola Genaro

Tienes que tener un error en el circuito del 7805. Además le puedes conectar un difusor de calor y adicionalmente existen variantes de esta parte que pueden proveere hasta 2 amperios de corriente. Las baterías de 9V definitivamente no son adecuadas si quieres alimentar el servo con la corriente desde allí.

Porque no usas una fuente de energia adicional para el servo? Mientras tengas las GND conectadas, para que tengan la misma tierra, eso te quita el estrés de las baterías de 9V!
 
Estas igual creo que es el programa o dame algo otros programa muy sencillo para saber si vibra algo.
voy a programar un potenciometro que gira al mismo tiempo que el servo a ver si puedo o no puedo.
En un momento regreso.... :shock:
 
Cuando los desconecto ISP y LCD Vibra el servo y cuando el microinterruptor esta en ON vibra pero cuando estas Apagado en OFF no vibra, ya puse las bateria pero me marca 5 voltios todos bien y el disipador ni mas ni menos se calienta.
Yo creo que es el programa pero los unico que adapte son los renglones ya los demas no eh movido para nada. :shock:
 
Hola Genaro

Evitemosnos en detalles de este módulo. El objetivo del módulo, el controlar el servo con el potenciómetro lo has logrado perfectamente. Sigue con el próximo ejercicio que ya volveremos a ocuparnos del asunto cuando decodifiques las senales del receptor y así puedas controlar la posición del servo desde la emisora.

Mi senora me considera loco por hacer tanta cosa para aprender a tener el controlador hacer lo que hace el receptor directamente! La diferencia es que así el servo cumplela función que han estado cumpliendo los LEDs. Es hacer visible que podemos decodificar la senal proveniente de la emisora atravez del receptor con nuestro controlador.
 
Hola Hellmult
Jejejeje a mi tambien me dije loco :roll: pos ni modo voy al Programa 6:Uso de Interruptor con Timer esto si funciona bien buenos al rato los publico el video. :shock:
Saludos Genaro
 
Muy sencillo me la pase todo el tiempo aprendiendo estas cosa del servomotor que se mueve izquierda,centro y derecha....pero no vibra

Adjunto el video como ejemplo.

http://www.youtube.com/watch?v=VoTyjMwvMfA" onclick="window.open(this.href);return false;

Continuara.....
 
Hellmult ya estas el video del Programa 6:Uso de Interruptor con Timer.

http://www.youtube.com/watch?v=lAZBS2CN4WE" onclick="window.open(this.href);return false;

El Timer0 yTimer1 yTimer2 para que es y cual es la diferencia? :oops:

Seguimo Programa 7: Decodificar canal del Receptor :shock: WAW!!
 
Hola Genaro

Mira en la hoja de datos, allí encuentras la descripción de los Timers. Tarea: En que se diferencian?
El Prescaler. Los Timers son contadores de 8 o 16 bit de largos. 8 Bits significa que pueden contar de 0 a 255, 16 bit que pueden contar de 0 a 56000 y pucho.

Cuando los Timers empiezan a contar cuentan desde "0" o desde un valor que especificamos hasta el valor ,áximo posible a hasta un límite que les damos. Cuando llegan a uno de estos límites crean una interrupción lo que hace que el programa salte de la ejecuación actual a la de la rutina de servicio del interrupt correspondiente.
Estos Timer son incrementados con los "tics" del reloj del controlador, por ejemplo 1MHz, 4MHz u 8 MHz sin quarzo exterior o hasta 16MHz en caso del mega8 y hasta 20MHz que permiten alguno de los controladores. Los nuevos Xmega pueden ir con hasta 30MHz. Como te pueden imaginar a estas velocidades los contadores llegarían a contar hasta sus máximos en un tiempo tan breve que no alcanza pra cumplir la tarea que deseamos. Por eso usamos los Prescalers. Estos dividen la frecuencia de conteo dividiendo la fecuencia aplicada al contador proveniente del quarzo externo o del reloj interno del mega8 en nuestro caso. Un prescaler de 64 significa que si el conrolador esta siendo operado a 8 MHz, entonces 8.000.000 / 64 = 125.000. Por eso nos decidimos por un prescaler tal que el contador cuente un tiempo lo suficientemente prolongado. Felicitaciones por los logros demostrados en el video! En special me gusta como "juegas" con los parámetros del programa. Pero sigue investigando analizando la software para realmente entender lo que passa en el programa!

En el módulo 7 veremos, ahora también utilisando tu emisora, los dígitos en la pantalla que equivalen a la longitud de los impulsos generados en tu receptor a razón de los movimientos de los controles de la emisora. Combinando esto con los ejercicios de mover el servo habras alcanzado el punto donde el controlador recibe la información de lo que quieres que haga y saber como usar esa información para que ocurra lo que tu quieres!

Ahora te quiero revelar un gran secreto. En este punto tendras las habilidades para controlar un variador! Después del módulo 7 tendras la tarea de combinar los conocimientos adquiridos y controlar un variador haciendo girar un motor a diversas revoluciones y a invertir estas. Ya iremos de allí a controlar la intensidad de una luz halógena por ejemplo, pero ya veras!
 
Hola hellmult! Disculpe mi tardanza!! :oops:
Buenos,en que quedamos? El Timers en que se diferencia?
El timer0 tienes 8 Bits con 256 Valores y El timer1 y Timer2 son 16 bits con 65530 valores posible ya que este es muy fino que El Timer0.y el Prescaler es un divisor de frecuencia dependiendo la velocidades del oscilador externo o interno.
Vamos a ver al Programa 7:Decodificar canal del Receptor WOW!! :shock:
Saludos Hellmult y para todos los compañeritooooos.
 
Ante de conectar cual de las 2 opcion. :roll:

1-Con bateria del receptor.
2-Con tarjeta experimental de las fuente.

Tengo duda pos si me daña el receptor cual de las dos? supuestamente es los mismo,no? :shock:
 

Archivos adjuntos

  • Con bateria del receptor.jpg
    Con bateria del receptor.jpg
    41,6 KB · Visitas: 40
  • Con alimentacion a la tarjeta experimental.jpg
    Con alimentacion a la tarjeta experimental.jpg
    39,1 KB · Visitas: 40
Yo usaría solo una fuente de alimentación para el receptor y para la electrónica. Pero solo conecta el hilo con la senal del receptor a la tarjeta, no tierra y 5V. Repito, de los 3 hilos del conector del receptor solo usas el de la senal!

Por lo tanto la fuente de alimentación no será el receptor, sino aquella de la tarjeta experimental, pero solo tomando los 5V del 7805 y no lo 9V de las 2 baterías de 9V! Así al receptor no le deberia poder pasar nada, pues tendrían una tierra coún y los mismos 5V.

Pero recuerda, aquí nadie puede tomar la responsabilidad si no la tomas tu!
 
Hola Hellmult.

Con las dos opcion funciona pero no pasa nada mi receptor y los he conectado en el pin D.2 de la salida del receptor y el cristal liquido LCD solo indica timervwert:0 se queda estos valores no cambia y los Led PinC.0,PinC.1 Sola parpadea los LED Y PinC.3 no hace nada solo apagado.

Tengo dos receptor uno es FM y el otros es AM estas señale no importa?

Saludos hellmult!
 
Maravilloso,ahora tienes la oportunidad de usar el controlador como herramienta pra detectar lo que pasa!

En teoría sabes que cada 20ms se debería repetir un impulso.

1. Conecta un servo al canal que deseas analizar y comprueba que este pueda ser controlado desde la transmisora. Si el resultado es positivo sabes que la receptora esta creando los impulsos de tal forma como lo requiere el servo.

2. Paso averigua con el multimetro si la tensión en la salida del receptor es de 0V o de 5V. Como lo simpulsos son sumamente cortos en comparación con el tiempo sin impulso la tensión que mode el multimetro ignorará el impulso. Debería salir 0VDC.

3. Modifica el programa para que te diga si la tensión en la línea de senal del receptor cambia de polaridad. Cuando confirmes eso, el siguiente paso.

4. Súmale al programa la abilidad de contar la longitud del impulso. Comprueba que so funcione.

Lo que supongo es que no estas contando la longitud del impulso correctamente! Otra posibilidad es que las tensiones estan descuadradas.
 
Hooolllaaaaa hellmult!

Ya he comprobado que el receptor hay impulso Y los conecto al Pin D.2

Con la fuente de la tarjeta experimental de la salida del impulso a Pin D.2 me marca 0.291 voltios con la palanca hacia abajo y para arriba me marca 0.170 voltios.

Las desconecto las fuente de la tarjeta experimental y conecto con las bateria propia del receptor me marca casi los mismo 0.287 voltios y 0.176 voltios.

estas correcto? para seguir la modificacion del programa :shock:

No te asuste compañeritos!! :shock:

Saludos Genaro :shock:
 
Sobresaliente Genaro. Permíteme explicar los resultados y usar para este propósito tus imagenes de los impulsos del receptor:

file.php


file.php


Quiero indicar una vez mas, lo que llamas complicado realmente no lo es. El propósito de este curso es capacitar a todo forero interesado entender las cosas que por si son muy simples pero inacostumbradas y así poder usar la herramienta "electrónica" y no solo copiar o duplicar diesenos.

Los 2 diagramas arriba permiten ver de forma muy clara que el tamano de la superficie de las columnas es mas pequena en el primer gráfico que el de las columnas en el segundo gráfico. Eso significa que por mas tiempo la senal tiene la tensión de 5V en el gráfico 2 que en el 1. Este cambio de tensiones de los impulsos es tan velos, 50 veces por segundo, que el multimetro solo da un promedio de la tensión y no el valor de la verdadera tensión. Obviamente cuando el tiempo que la senal tiene un valor de 5V es mas larga el promedio aumenta.

La PWM que se usa para controlar un motor de escobillas DC usa eso para controlar la velocidad de rotación de un motor. Cada vez que la PWM aplica un impulso, en el sentido de los diagramas arriba, un rectángulo, el motor es acelerado, cada vez que el impulso ha terminado el motor continua girando por inercia y la solicitación, por ejemplo una helice ue propulsa una motonave, lo frena. Obviamente que si se aplica el 100% del tiempo la tensión al motor esta girará a mas velocidad hasta alcanzar su máximo.

Volvamos a tu tarea!

Por lo dicho anteriormente y por los valores que has medido he indicado aquí la senal llega correctamente al pin D.2. Ahora lo que debes hacer como próximo paso para acercarte a la solución es asegurar que la medición de la longitud del impulso sea medida correctamente. Para esto todo lo que haría es escribir el valor leido en la pantalla una vez por segundo.

Código:
'Zuweisung der Interrupt-Service-Routinen
On Int0 Rc_read
On Timer1 Rc_error

'Timer-Freigabe
Enable Timer1
Stop Timer1

'Freigabe der Interrupt-Routinen
Enable Int0
Enable Interrupts

Analicemos un poco el programa del módulo de software número 7. Arriba he sacado de allí una parte del código de inicialisación!

"On Int0 Rc_read"

este renglón del programa indica que el interrupt Int0 es accionado cuando cambia el nivel de la tensión en el pin d.2. La subrutina Rc_read es la rutina de servicio del interrupt. Recordemos. El interrupt es una "llamada" que ocurre cuando un evento externo tiene lugar. En nuestro caso este evento es cuando la tensión del pin D.2 cambia de 0V a 5V.

"Enable Timer1
Stop Timer1"

Estos 2 renglones del programa hacen lo siguiente. El primer renglón dice que queremos usar el contador "Timer1" y así lo activamos. El segundo renglón dice, favor para el contador de contar y inicializa lo poniendolo en "0". Así con cada "Tick" del reloj interno el contador incrementa su valor por "1", en el caso del programa, el reloj interno funciona a 4MHz, lo que hay que poner manualmente cambiando los valores de los tales "Fuse bits"! Lo has hecho?

Como hemos discutido anteriormente el "Prescaler" es un divisor de la velocidad de los "Ticks" del reloj interno! Por eso si el prescaler tiene un valor de "4", entonces el contador Timer1 no incrementa 4 millones de veces por segundo, sino solo 1 millón de veces! Recuerdas?

Código:
'======================================================
'ISR für INT0 - Leer canal RC
'======================================================
Rc_read:
'El Timer arranca contando con el cambio de 0V a 5V desde "0"
If Reading = 0 Then
Start Timer1  'Aquí arranca!
Reading = 1
Toggle Portc.0  'Aquí invierte la condición que activa el interrupt
'El contador Timer1 parará contando cuando la tensión vuelva de 5V a 0V!
'Esto es lo que ocurre al final del impulso, ver columnas en los gráficos
'La variable "Reading" que tenía el valor de "0" es puesta a "1". Ahora cuando ocurra el evento del fin del impulso la condicion Reading = 0 es falsa y el programa salta a la primera sentencia después de "else"
Else
Stop Timer1   'Ven, ahora la variable Reading = 1 por lo que el programa salta acá!
Rc_value = Timer1 'Aquí la variable Rc_value recibe el valor del contador!
Timer1 = 0 'Aquí el contador es reseteado estando así listo para cuando el impulso se repita despues de 20ms!
Reading = 0  'Aqui la variable Reading vuelve a recibir el valor de "0" por lo que el programa ejecutará las sentecias anteriores a "else" la próxima vez que el impulso aparesca!
Toggle Portc.1
End If
'Error-Bit rücksetzen
Error = 0
Return

La variable "Error" tiene la función demanejar la situación cuando por X-razón el receptor no pueda recibir el impulso correctamente. No voy a entrar en detalles aquí!
 
Ayyy!! Es un programa muy superior yo creo que ningun compañeritos ni los vas a enteder Profe! :roll:

Ya medimos un promedio de la tension pero no el valor de 0V. y 5V. pero que tengo que hacer? porque ahi quedamos. :oops:

Saludos hellmult. :shock:
 
Atrás
Arriba