Use el PIN RESTABLECER de Attiny85 como entrada con divisor de voltaje

5

Divisor de voltaje & pull-up con analogRead

El Attiny tiene 6 pines que puede usar como E / S.

Si bien 5 de ellos son realmente fáciles de usar, el PIN 1, el PIN de restablecimiento, obviamente restablece el microcontrolador si el voltaje es inferior a alrededor de 2.5v.

Al reprogramar los fusibles para usar el pin de reinicio como un pin de E / S, ya no puedo usar el programador ISP arduino.

  

Por lo tanto, la única forma de usarlo como entrada, sin reiniciar el MC, es permanecer por encima de 3v   y usar analogRead?

Después de que finalmente obtuve eso, jugué un poco con mi multímetro (solo herramienta de medición disponible) y experimenté con resistencias.

simular este circuito : esquema creado usando CircuitLab

The powersupply(battery) outputs around 5.11v.

not pressed i get 5.11v on the "reset pin".
pressed i get 3.41v on the "reset pin".

not pressed the resistace is 39K Ω.
pressed the resistace is 19K Ω.

Ahora, como no quiero reprogramar los fusibles ni quemar el Attiny85, mi pregunta es:

¿Puedo dañar de alguna manera el uso de este circuito con analogRead(); ?

Las lecturas serían alrededor de 680 cuando se presionan o 1000 cuando no se presionan.

¿Debo usar otras resistencias para consumir menos corriente / enviar a mucha corriente continuamente? ... si esto funciona ...

¿Alguna otra sugerencia?

Notas.:

Yousolospines2(PB3),3(PB4),5(PB0),6(PB1)comocanalesPWM(contransistoresnpn);Rojo,verde,azul,blanco.

Uséelpin7(PB2)comobotón.Perotambiénnecesitounpotenciómetro...

SO:

pin7(PB2)seconvierteenpotenciómetro(analogRead).

y,espero

pin1(PB5)seconvierteenunbotónusandoanalogReadoloquesea.

EDIT

estesitioexplicamássobreelproblema,aunquenecesitounbotónsimple.

enlace

EDIT

No probé el circuito anterior. Te estoy preguntando si podría funcionar, si hay algo mal. Tengo miedo de dañar el pin.

Todo lo que sé es que:

  1. se restablece con bajo voltaje usando la configuración normal del potenciómetro o la configuración normal del botón
  2. si configuro los fusibles no puedo reprogramar el chip

  3. pin1 = pb5 = adc0 = analogread (A0) = Arduino pin5 = RESET

pregunta cocco

1 respuesta

6

Sí, puede usar el convertidor de analógico a digital en el pin 1 incluso si el restablecimiento externo todavía está habilitado en ese pin siempre que el voltaje en ese pin no caiga por debajo del umbral de reinicio.

Aquí hay una versión más simple de su circuito que funciona de manera confiable ...

simular este circuito : esquema creado usando CircuitLab

...

Cuando se presiona el botón SW1, los resistores R2 y R1 forman un divisor de voltaje que pone alrededor de 4.54 voltios en el pin RST.

Aquí hay un programa de prueba de Arduino que encenderá el LED a bordo cada vez que se presione el botón ...

int led = 1;    // Onboard led on trinket

setup() {
    pinMode( led, OUTPUT );
}

loop() {
    if (analogRead(0)) > 900 ) {   // reset pin is near Vcc
        digitalWrite( led , 0 );   // turn led off
    } else {                       // reset pin is less than 900/1024 * 5 vcc
        digitalWrite( led , 1 );   // turn led on
    }
}

Notas:

Un Trinket es básicamente un ATTINY85 que tiene un conector USB y un cargador de arranque precargado, por lo que es fácil obtener código en él utilizando el IDE de Arduino. Todo lo que se dice aquí acerca de Trinket va para un ATTINY85 y viceversa.

La hoja de datos del ATTINY85 especifica el voltaje mínimo en el pin de reinicio que se interpretará como "1" como 0,9 voltios * (V IH2 ), que aparece en 4.5 volts . Desde el ~ 4.54 voltios La salida por el divisor de voltaje de salida es más alta que eso, debe verse como un" 1 "y no reiniciar el chip.

Hayunpullupincorporadode30k-60kenelpindereinicio,porloqueenprincipiopodríamosusar,digamos,unR2de30kohmiosynonecesitarelR1,perohedescubiertoquepuedeobtenerreiniciosfalsosconsolocambiarelpullupinterno.

Elegí10kyamp;Losresistoresde1kohmporquesoncomunesyproporcionansuficientecorrientedemaneraconfiable,perosolodesperdicianalrededorde 2mA cuando se presiona el botón. Se usa muy poca corriente cuando no se presiona el botón.

Escogí 1000 como el valor de umbral en la lectura analógica porque le da mucho espacio para la cabeza en ambos lados por imprecisiones en los valores de las dos resistencias. Cuando no se presiona el botón, el pin de reinicio debe estar muy cerca de Vcc y, por lo tanto, el analógico Read () debe estar muy cerca de 1023. Cuando se presiona el botón, la tensión en el reinicio se reducirá en R2, pero depende exactamente de qué tanto depende. en los valores exactos de R1 y R2 (el valor real de las resistencias puede ser bastante diferente de su valor de mercado debido a tolerancia ) y el pull-up interno, así que elegí un valor más alto que solo el punto medio.

    
respondido por el bigjosh

Lea otras preguntas en las etiquetas