Bij gelegenheid ik heb gebruikt een Attiny13, 25, 45 of 85 in een project en had net dat één pin korte. Deze chips zijn verondersteld om 6 I/O pinnen maar pin nummer één (PB5/ADC0) als resetpin verdubbelt en om het te gebruiken als een I/O pin, moet u de juiste zekeringen in de chip. Dat is niet zo moeilijk, maar het probleem is dat zodra die fuse is ingesteld, de chip kan niet worden geherprogrammeerd door SPI, maar moet een hoge Voltage programmeur die eerst moet de specifieke fuse bit weer gereset.
Zeker u kon upgraden naar een Attiny2313, maar vaak dat betekent dat u wilt installeren van een nieuwe kern, of het maken van een nieuwe programmering bord, maar dat is een pijn als goed.
Dus, ik vroeg me af als dat RESET pin kan worden gebruikt als een I/O pin zonder het knoeien met de fuse-bits, immers, er is nog een heleboel spanning om mee te spelen voordat je de reset niveau
Hoewel het was mij een beetje onduidelijk wat de vereiste Low Voltage is dat de resetpin voor een Reset moet, lijkt het dat het lager is dan wat in het algemeen wordt geïnterpreteerd als een 'laag'.
Dat potentieel opent mogelijkheden om te gebruiken het bereik tussen + Vcc en Vreset voor input-analoge zowel als digitale - zonder de chip resetten
Ik testte eerst de analoge ingangsfunctie zoals een groter bereik dan de digitale input opstelplaats heeft (zoals ik het verschil tussen lage en RESET zeer klein verwacht). Ik gebruikt een Attiny13, vastgehaakt aan een LED en een weerstand te PB0 en het middelste contact van een 25 k variabele weerstand op Pin 1 en de buitenste contacten Vcc en 0V respectievelijk aangesloten.
Ik laadde vervolgens de Attiny13 met het volgende programma:
// Using the Reset pin as 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); }
Wanneer de variabele weerstand staat helemaal tot aan de + Vcc spoor, knippert de LED in een regelmatig ritme. Wanneer ik de variabele weerstand afgewezen, de knipperende frequentie ging, dat wil zeggen een snellere knipperende LED... zoals verwacht. Dit ging tot plotseling gestopt met de LED knippert (als de resetfunctie geschopt in). Ergo, is er een bereik in welke pin 1 kan worden gebruikt voor invoer, terwijl nog het handhaven van de RESET-functie.
Het blijkt dat het punt van de reset op 9 K Ohm (van 25 was). Die is gelijk aan 5 *(9/25) = 45/25=9/5=2.2 Volt.
Dat is over het algemeen niet veel verschillend van wat wordt beschouwd als een laag en het is een beetje hoger dan wat ik begreep de Vreset te zijn.
Als natuurlijk heb je niet een circuit dat altijd op de rand van het resetten, we moeten opbouwen in een bepaalde vorm van bescherming is: iets dat de spanning op pin 1 van raken 2.2 Volt of lager houdt.
Laten we het tweede circuit. Stel dat de laagste weerstand van de LDR we onder de lichtomstandigheden meten wij gebruiken het, is 1k. Dan we weten dat de stroom door die 1 k minimaal 2.2 moet mA verblijven boven de Reset spanning. De totale weerstand van de LDR + de weerstand moet dus 5/2.2=2.27k, vandaar de weerstand moet minimaal 1.27 k. De dichtstbijzijnde E12-waarden zijn k 1.2 en 1.5 k en we moeten kiezen 1.2k veilig te zijn. (1.2 k -> 2.27 volt /1.5 k -> 2 volt)
Natuurlijk een kan het circuit moet worden gebruikt met de weerstand en LDR uitgewisseld, maar dan is het veel moeilijker voor het berekenen van dat een veilige weerstand zoals in duisternis de waarde van de LDR kan oplopen tot meerdere Mega Ohm, aangedrongen op een weerstand die in dat hetzelfde bereik.
Wil u een trimpot op PB5 gebruiken, dan u één zijde verbinden met Vcc, de variabele pin tp PB5 en de andere kant op grond via een weerstand, moet zodat het middelste contact nooit 2.2 volt hit zal.
U kunt het berekenen van de waarde van die weerstand van de waarde van de variabele weerstand met de formule
r = 0,58 P
In welke r is de waarde van de weerstand en P de waarde van de potentiometer. Dus met een 10 k potentiometer die u gebruiken een 5.8 k weerstand wilt. Die zal beperken tot het bereik van de lezing op de analoge input, maar in ieder geval kunt u het als een analoge input.
Gewoon een woord voor "Let op" de weerstand waarden vond ik werden gemeten door een fatsoenlijke multi meter, maar het is niet hoogste inkeping. In 'uw' geval moet u wellicht een weerstand die heeft een iets andere waarde en natuurlijk die het hangt ook af van de variabele weerstand of andere ingangsbron die u gebruikt.
Gezien het feit dat het niveau van de Reset op 2.2 Volt, ik heb niet de moeite genomen om te proberen als het met digitalRead werken zou