Med stift 1 på Attiny13/25/45/85 utan att jävlas med säkring bitar
Ibland jag har använt en Attiny13, 25, 45 eller 85 i ett projekt och hade bara det en pin kort. Dessa marker är tänkta att ha 6 I/O stift men pin nummer ett (PB5/ADC0) dubblerar som Återställ PIN-kod och för att använda den som en i/o pin, måste man ange korrekt säkringarna i chipet. Det är inte så svårt men problemet är att när den säkringen har angetts måste chipet inte kan omprogrammeras av SPI, men behöver en hög spänning programmerare som först måste återställa specifika fuse lite igen.
Visst du kan uppgradera till en Attiny2313, men ofta som innebär att du måste installera en ny kärna, eller göra en ny programmering styrelse, men det är en smärta.
Så, jag undrar om att återställa PIN-koden kan användas som en i/o pin utan Messina med bitarna fuse, trots allt, finns det en hel del spänning att leka med innan du träffar reset nivå
Fast det var lite oklart för mig vad det krävs låg spänning är att återställa PIN-koden behöver för en återställning, verkar det som det är lägre än vad brukar tolkas som en "låg".
Som potentiellt öppnar möjligheter att använda mellan + Vcc och Vreset för input-analog som digital - utan att återställa chip
Jag testade först funktionen Analog ingång som har en större räckvidd än den digital input funcion (som jag väntat skillnaden mellan låg och återställning är mycket liten). Jag använde en Attiny13, kopplade upp en LED och förkopplingsmotstånd till PB0 och ansluten en 25 k variabel resistor mellersta kontakt till stift 1 och yttre kontakterna till Vcc och 0V respektive.
Jag laddade sedan Attiny13 med följande program:
Använda Återställ PIN-koden som ADC0
CONST int Led = 0;
int x = 0;
void setup() {
pinMode (Led, OUTPUT);
}
void loop() {
digitalWrite(Led,HIGH);
x=analogRead(0);
Delay(x);
digitalWrite(Led,LOW);
Delay(x);
}
När den varierande resistorn slås ända upp till den + Vcc järnväg, LED blinkar i en stadig rytm. När jag vände ner den varierande resistorn, blinkande frekvensen gick upp, dvs en snabbare blinkande lysdiod... som förväntat. Detta fortsatte tills lysdioden plötsligt slutat blinka (som återställningsfunktionen sparkade i). Ergo, finns det en rad i vilken pin 1 kan användas för input, samtidigt bibehålla sin återställningsfunktionen.
Det visar sig att reset var på 9 K Ohm (av 25). Vilket är lika med 5 *(9/25) = 45/25=9/5=2.2 Volt.
Som är i allmänhet inte mycket annorlunda från vad som anses vara en låg och det är lite högre än vad jag förstått Vreset vara.
Som såklart inte kan ha en krets som är alltid på gränsen till återställa, vi måste bygga vidare i någon form av skydd: något som håller spänningen på pin 1 från slå 2,2 Volt eller lägre.
Låt oss betrakta den andra kretsen. Antag att det lägsta motståndet av LDR vi mäta under ljusa förhållanden vi använder det, 1k. Då vet vi att strömmen genom att 1 k måste vara minimalt 2,2 mA bo ovanför Reset spänningen. Därmed det totala motståndet LDR + motståndet måste vara 5/2.2=2.27k, därav motståndet måste vara minimalt 1,27 k. Är närmast E12 värdena 1,2 k och 1.5 k och vi bör välja 1.2k för att vara säker. (1.2 k -> 2.27 volt /1.5 k -> 2 volt)
Såklart man kan använda banan med motståndet och LDR växlat, men då är det mycket svårare att beräkna en säker motstånd som i mörker värdet av LDR kan gå upp till flera Mega Ohm, kräver ett motstånd som är i samma intervallet.
Bör du använda en trimpot på PB5 då måste du ansluta en sida till Vcc, variabel pin tp PB5 och den andra sidan till jord via ett motstånd så den mellersta kontakten kommer aldrig slå 2,2 volt.
Du kan beräkna värdet av det motståndet från värdet av den varierande resistorn med formeln
r = 0,58 P
I som r är värdet av motstånd och P värdet av potentiometern. Så med en 10 k potentiometer måste du använda en 5.8 k motstånd. Som kommer att begränsa behandlingen på den analoga ingången, men åtminstone kan du använda den som en analog ingång.
Bara ett ord för "varning" resistor värdena jag hittade mättes med en anständig multimeter men det är inte vass. I "din" fallet måste ett motstånd som har en något annorlunda värde och självklart det beror också på den varierande resistorn eller andra ingångskälla som du använder.
Med tanke på att återställa är på 2,2 Volt, jag har inte brytt sig om att prova om det skulle fungera med digitalRead