Använda Återställ pin / pin 1 på Attiny utan att bry sig med säkringar
Du shldnt att kunna se detta Instructable som det är opublicerade. Jag hade glömt att jag hade gjort en liknande en före
Attiny 13, 25, 45, 85 är charmiga lilla chips som som namnet säger, är små. De ska ha 6 I/O pins men pin nummer ett (PB5/ADC0) fungerar som Återställ PIN-kod och använda det som en i/o pin, måste man ange korrekt säkringarna i chip. 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 ska återställa den specifika fusebit igen.
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". Att potentiellt öppnar möjligheter att använda i intervallet + Vcc och Vreset för input, utan att återställa chip för att testa detta använde jag 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 den yttre kontakter till Vcc och 0V respektive. Jag laddade sedan Attiny 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 gick tills lampan plötsligt stopt blinkande (som återställningsfunktionen sparkade i). Det visar sig att reset var på 9 K Ohm. 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.
Därför använder det som en igital Input PIN-kod kan vara lite knepigt, men det öppnar upp tillräckligt möjligheter att använda spänna mellan Vreset och Vcc för analog ingång, om än lite komprimerad utbud.
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.
Låt oss betrakta den 2: a kretsen. Antag att det lägsta motståndet av LDR vi mäta under ljusa förhållanden vi använder är 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 inte mer än 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.
Naturligtvis kan man 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.
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.
Metoden har tydligen vissa nackdelar, främst en komprimerad range, men om du bara behöver det en extra stiftet att mäta ljus och det inte är värt att gå till en attiny 44 eller en attiny 2313, denna metod bara kan göra skillnad