Het absolute maximum voor een 328P processor is 40 mA per pin. Het is echter niet te adviseren dat continu te vragen; een veiliger maximum is 20 mA. Er is echter meer.
Uit de 328P datasheet
Maar je hebt de LEDs niet aangesloten op de Arduino maar op de 74HC595 en daar gelden andere limieten. Van de datasheet
Als je alle LEDs aan wilt hebben (niet in het geval voor het huidige "huiswerk") geldt dus dat je de weerstand moet berekenen gebaseerd op 70 mA / 8 = 8.5 mA per pin.
LEDs trekken geen stroom dus is het niet relevant; de stroom wordt er doorheen "geduwd" en bepaalt de lichtsterkte. De hoeveelheid stroom die je er doorheen mag "duwen" hangt af van de LED; voor de standaard LEDs is het typisch 20 mA hoewel korte pieken hoger mogen zijn.
Stel je voor dat button1 aan is en button2 ook.
Dat wordt het dus 1
en dan 1 + 10 * 1 = 11
Ik zat dus digitaal te denken maar dat lost het probleem niet op
Daarom terug naar de tekentafel
Wacht eens
Ik kan het volgende doen
Stel je voor dat alleen de tweede button aan is
dan geeft de button een 0 maar die kan ik naar een 1 laten "overzetten"
dan omdat het button2 is vermenigvuldigen met 2 en dan is 10 in digitaal
Stel je voor dat button1 en button2 ingedrukt is
Dan wordt het beide 0 omzetten naar 1
de eerste 1 vermenigvuldigen met 1 en de tweede 1 vermenigvuldigen met 2
Dan wordt dat 3 . Zie alleen even niet hoe alleen led3 aan moet.
Digitaal is led3 aan 100
hetzelfde geldt voor led 4 digitaal kom ik dan op 100 maar moet 1000 zenden.
Je telt nu in zoals je dat op de basisschool geleerd hebt.
Dat is niet de manier waarop dit bedacht is, er zit een strategie achter de opgegeven dimensies.
Je hebt 7 LEDs.
En je hebt 3 knoppen.
Die 3 knoppen geven 8 verschillende mogelijkheden, en we wisten inmiddels al dat we beginnen met tellen bij nul.
Dus in dit geval is nul de achtste mogelijkheid, dan staan er ook nul LEDs aan.
Elke andere mogelijkheid geeft 1 LED als resultaat.
Dit kun je met een ander getalstelsel oplossen en daar ligt dus de kneep.
Deze reply is nog steeds een raadsel want er moet nog wel wat op te lossen zijn, toch ?
ik kan de waarde aflezen en dat als string aan elkaar te plakken.
Maar dan kan ik weer geen switch gebruiken om de leds aan te sturen en om dan heel veel if then's te gebruiken is ook lelijk.
of ik moet een dictonary gebruiken en daar de vertaling instoppen.
Dan wordt de string de key en de waarde die ik naar de chip moet sturen de value.
Dat lijkt erg (lees: nodeloos) gecompliceerd; maar dat komt omdat je nog niet weet wat er allemaal mogelijk is. En voel daar je niet beschaamd over, ik heb ook dingen uitgevonden waarbij ik er later achter kwam dat er bestaande functies voor bestaan.
Werk eerst aan het inlezen van het nummer (een int of een byte) zodat je het nummer dat je met de knoppen instelt op de seriΓ«le monitor kunt laten zien in bv binaire vorm.
Serial.println(variable, BIN);
Dat moet 0, 1, 10, 11, 100, 101, 110, 111 printen (voor respectivelijk 0..7) als je het inlezen goed voor elkaar hebt
Knop 1 heeft de waarde 1, knop 2 heeft de waarde 2 en knop 3 heeft de waarde 4. Knop 4 zou de waarde 8 hebben en knop 5 zou de waarde 16 hebben. Zie je een patroon?