5 votos

Attiny85 interrupción de hardware no confiable, 433 MHz remoto

DESPLÁCESE HACIA ABAJO PARA VER LA SOLUCIÓN (ACTUALIZACIÓN II)

POST ORIGINAL: Actualmente estoy construyendo un 433MHz remoto con dos botones. El control remoto es controlado por un Attiny85v(8MHz). Lamentablemente no funciona muy fiable, a veces funciona otras veces no pasa nada.

Aquí algunas explicaciones sobre lo que hice y por qué:

Cada uno de los botones desencadena un cambio de pin de interrupción que despierta el Attiny de dormir. Después de que me compruebe que ha pulsado el botón y encender o apagar las luces a través de 433MHz interruptores. Pero los botones no funcionan muy fiable. A veces el hacer lo que otras veces tengo que pulsar durante varios segundos antes de que ocurra algo. No sé por qué, tengo un error en mi código o en el circuito de los botones.

Yo uso un 2.2 k resistencia a tirar del botón de pines (0 y 1) a GND. Cuando se pulsa el botón, los pines se deben levantar. Para evitar el "rebote" del pulsador he añadido un 0.01 uf condensador en paralelo.

Traté de mantener el código simple y comentarios agregados. Usted puede encontrar aquí: http://pastebin.com/hzw0j3FW

Aquí está mi circuito:
Circuit

Águila esquema:
Eagle

Delantero & trasero:
FrontBack

ACTUALIZACIÓN: Gracias por todos los comentarios, también he recibido algunos comentarios en un foro alemán. Aquí está una lista de lo que es o podría estar mal con el diseño:

  • No tire de los pasadores de ALTA al pulsar los botones. En lugar de utilizar INPUT_PULLUP y tirar luego a TIERRA cuando se presiona.
  • Como se ha señalado aquí, así como en los foros: utilice un software de eliminación de rebotes o invertida Schmitt-Trigger
  • Cuando se utiliza software de eliminación de rebotes asegúrese de que sólo conjunto de banderas en la rutina de interrupción y actuar sobre los indicadores en el bucle de rutina.
  • Prueba si el RF-transmisor tiene suficiente jugo
  • Agregar un capacitor a través de VCC y GND del Attiny
  • Trate de alimentar todo el circuito con una fuente de alimentación de laboratorio. Tal vez la celda de moneda no puede proporcionar suficiente energía.

Tristemente he flasheado mi último Attiny85v a la muerte el día de hoy, por lo que tomará algún tiempo para mí para solucionar este diseño. Voy a informar de regreso una vez que yo tengo una solución.

ACTUALIZACIÓN II, de la Solución: SE ESTÁ TRABAJANDO. El diseño es defectuoso, pero funciona. Aquí están los dos fallos que he encontrado.

  1. El uso de alta calidad de los interruptores. Yo procedente de mi interruptores de Farnell pero eran de muy mala calidad. Había que presionar abajo, a continuación, mover el pulgar para asegurarse de que se conecte. Esta fue la razón por la que el control remoto sólo trabajó de forma espontánea.

  2. El segundo problema era que no todos los rc-poder-tapones se apaga cuando se presiona el botón de apagado. A veces apague todos los tres de ellos, a veces sólo uno. Esto fue debido a que el transmisor de rf. Como @Michal Canecky y @Ricardo señaló los transmisores de ejecutar en 3V+. Ellos hacen el trabajo, con 'sólo' 3V, pero la variedad es muy limitada (2m en mi caso). Por soldadura de una de 15 cm de la antena al transmisor yo era capaz de obtener un rango de 3-4m. Ahora todos los rc-poder-tapones desactivar de manera fiable.

También he utilizado un ámbito para probar si la celda de moneda no era lo suficientemente fuerte como mediante la medición de la tensión de alimentación del transmisor durante la transmisión. Resultó que era fina y constante.

Gracias de nuevo por los consejos.

Todavía el diseño es defectuoso, aquí es lo que me gustaría mejorar o hacer de nuevo si tuviera que volver a generarlo:

  1. No tire de los pasadores de ALTA al pulsar los botones. En lugar de utilizar INPUT_PULLUP y tirar luego a TIERRA cuando se presiona.

  2. Mantener el condensador sobre los botones de eliminación de rebotes. He utilizado un ámbito para probar si funciona, y los resultados fueron sólidos. Asegúrese de no ir más de 0.01 uF.

  3. Añadir un condensador entre VCC y GND del Attiny

  4. En el código: asegúrese de deshabilitar las interrupciones después de recibir uno, esto también sirve como un software de eliminación de rebotes de los botones. Esto ya se refleja en el código original. No te olvides de activar las interrupciones antes de ir a dormir ;)

  5. Si usted necesita un intervalo de más de 3m, el uso de un doblador de voltaje (gracias @Michal Canecky) o una fuente de alimentación con más de 3V. Utilice el Attiny a su vez el doblador de voltaje de apagado después de la transmisión.

  6. Añadir un condensador en paralelo a la batería para mejorar la vida de la batería, especialmente para noname proveedores. Esto sólo es necesario si sus circuitos pico de corriente es superior a 10 ma. Echa un vistazo a este excelente artículo de TI. También se explica cómo calcular la capacidad.

Esto es lo que el código de esta versión mejorada se vería el Código v2 (Nota: no lo he probado este código)

Aquí la versión actualizada de circuito que yo uso:

Updated Circuit

3voto

Ricardo Puntos 3575

Sin el transmisor número de parte o un enlace a la hoja de datos del transmisor, parte de la información tendrá que ser asumido. También, sin el equipo adecuado y el conocimiento para prueba de circuitos de RF (muy caro), es realmente difícil de depurar. Pero siempre podemos jugar con estos circuitos, a la derecha?.

Me imagino que el problema es que el transmisor no está recibiendo suficiente energía para transmitir de forma fiable. Estos transmisores aceptar 3 para la alimentación de 12V, pero cuanto más, mejor (es decir, más de potencia de transmisión). Con su celda de moneda, usted está dando su voltaje mínimo (3V). A este voltaje, el transmisor se utilizan alrededor de 5 a 15mA, que puede no ser suficiente para que funcione de forma fiable.

Una prueba que se puede realizar es la derivación de la celda de moneda con un motor más potente de 5V de alimentación (tal vez desde el 3 de 1.5 V AA alcalino baterías en serie, o un banco fuente de alimentación) y comprobar si el control remoto funciona mejor.

Otro problema puede ser la falta de una antena. No puedo ver en tus fotos y también que no hay ningún vínculo con el módulo de RF de antenas pin en sus diagramas. Yo no soy de la antena experto ni tengo el equipo adecuado para probar que cosas (demasiado caro), pero por ensayo y error, me enteré de que mi 433MHz mandos a distancia sólo funcionan de forma fiable cuando equipada con un 10cm de la antena. Sin antenas, mi control remoto funciona solamente en un par de centímetros del receptor. Yo normalmente uso un poco interno de dichos cables se encuentran en los cables de la LAN muy útil para eso.

1voto

Andreas Puntos 1

He construir un buen par de sensores inalámbricos y mando a distancia basada en los hoteles de 433Mhz módulos y tiny85. Aquí están mis observaciones:

Usted no necesita alimentación del módulo de conexión inalámbrica desde el pin del microcontrolador con el fin de ahorrar energía, consume cerca de nada cuando el pin de datos en baja.

Cuando el pin de datos es alta (transmite) el consumo de energía es de aproximadamente 14mA, por lo que consume alrededor de 7mA, en promedio, para transmitir un mensaje que consta de unos y ceros.

Usted realmente necesita una antena, simplemente soldar una recta 17.2 cm de alambre. Usted puede simplemente bucle alrededor del perímetro del mando a distancia, si usted no puede mantener la línea recta.

3V suministro de energía es muy bajo, cuando la batería baja a 2V es aún peor. Yo uso una bomba de carga de tensión de doblador en mi diseño para alimentar el transmisor. Es impulsado hacia abajo en modo de suspensión, lo enciendo antes de la transmisión y a su vez si se apaga después.

El botón de la célula de la batería sólo puede proporcionar pocos mA y si usas el doblador de voltaje también será el doble de la corriente, por lo que necesita utilizar un mayor tapón en la salida a acumular energía suficiente para una transmisión de ráfaga (no se puede transmitir continuamente)

Hice un RF de la biblioteca específicamente para los transmisores de https://github.com/cano64/ManchesterRF Ver el ejemplo de los códigos para el transmisor y el receptor.

Sobre el modo de suspensión. Sólo se puede despertar el tiny85 el uso de una interrupción de hardware, y sólo cuando se va de BAJA, tiny85 tiene sólo una TAREA de interrupción pin (pin 7, PB2) así que usted puede utilizar sólo un botón directamente a despertarlo y debe ser retirado de ALTO cuando está abierto.

Aquí es cómo utilizar dos botones para despertar el uso de dos pines extras. Hilos como este: [Pin1] -- [btn1] -- [PB2], [Pin2] -- [btn2] -- [PB2] Antes de ir a dormir: conjunto de Pin1 = BAJA, Pin2 = BAJA, de forma que cuando se pulse cualquiera de ellos se despertará el microcontrolador. Después de Despertar: Para determinar qué botón se ha presionado, poner Pin1 ALTA Pin2 BAJA, y comprobar el estado de PB2, a continuación, cambie, Pin1 BAJA, Pin2 de ALTA y verificar el estado en PB2. Sólo se tarda una fracción de segundo para que se despierten y el usuario todavía se mantiene el botón pulsado. PB2 debe tener interna de pull-up activado o uso externo pullup

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X