Cirkel of leds ?

HOi,

Ik wil eens proberen om een cirkel van leds te maken die dan rechts of linksom gaan branden.

Ben ik hier op de goede weg ?

Project ; Wokwi - Online ESP32, STM32, Arduino Simulator

Ik denk niet echt. In het midden lijk je twee LEDs parallel te hebben, daarnaast ook twee LEDs parallel.

  1. Je moet LEDs niet parallel schakelen.
  2. Je kunt parallelle LEDs nooit individueel aansturen.

Chips, dat can de parallel heb ik even niet gezien.
Terug naar de tekentafel.

@sterretje het enigste wat ik dan kan bedenken is dit :

Hopelijk is dit dan goed ?

De LED gemarkeerd in blauw lijkt verkeerd om te zitten; dat maakt niet zoveel uit als je er rekening mee houdt.

Voor alle andere LEDs zit the platte kant links, bij de gemarkeerde zit die rechts.

oke, gaat me nu meer om het idee.
Wil eigenlijk de cirkel veel groter maken maar zoals ik al zei, eerst zien of ik het goede idee heb voor het plaatsen.

Dan de weerstanden plaatsen en daarna kijken of ik het kan laten draaien.
eerst zonder fade effect en later met.

Dus dit houdt me nog wel bezig de komende dagen/weken

Chips. Dit kan niet werken.
ikheb 6 leds maar ik heb maar 5 pvvm ports.
Zo weer terug naar de tekentafel

@sterretje

Op een Uno heb je 6 PWM pinnen (je moet even kijken welke). Dus pinnen genoeg.

Je kunt ook A0..A5 als digitale ingangen gebruiken (e.g. digitalRead(A0).

Pinnen 0 en 1 zijn de seriële poort die ook gebruikt wordt voor communicatie met de PC; dus daar alleen in noodgevallen gebruik van maken.

o. ik dacht dat ik de PWM poorten moest gebruiken om een led te dimmen.

Heb je hulp alweer nodig.
Ben nu bezig met het aansluiten en nu ik twee leds heb aangesloten en de code heb aangepast , laat ik de code lopen en gebeurt er helemaal niks

ik verwacht dat beide led aan gaan en blijven branden.

Project : Wokwi - Online ESP32, STM32, Arduino Simulator

Ja, maar er zijn er 6, niet 5.

De andere opmerking was meer bedoeld als herinnering dat je dan nog 14 pinnen over hebt.

Zal morgen naar je wokwi kijken.

oke, neem je tijd. Leren kost tijd en voor mij een goede oefening om leren te wachten

Je leds zitten verkeerd om.
De vlakke kant moet naar gnd.

Addressable LED ring.

Dit is totaal niet wat TS wil maken, het gaat om iemand die opnieuw begint en dus met de eerste stapjes bezig is.
Dit soort ringen (die je kant en klaar koopt) zijn heel leuk maar ver buiten de scope van TS.

Inderdaad wel even goed letten op de oriëntatie van de LEDs.
Verder zou ik bij de namen die je nu hebt toegewezen, niet de pinnen een nieuw nummer geven, maar daar neerzetten wat er aan de betreffende pin aangesloten zou moeten zitten.

Dus dan zou het worden van:

int pin1 = 11 ; 

Naar

int led1 = 11 ; 

Dat doet hetzelfde, maar zal in de toekomst net iets duidelijker zijn wanneer je het nog eens terug gaat lezen.

Ik zie dat je ook al hebt bemerkt dat je bij de plaatsing van de onderdelen op je breadboard rekening moet houden met de noodzakelijke bijbehorende onderdelen (weerstanden in dit geval), waardoor de eerste aanleg alweer veranderd is.

Ik ken dat wokwi verder niet dus ik heb even wat gespeeld met jouw projectje.
Geinig wel en sommige dingen zoals het dimmen worden redelijk getoond, inclusief hoe goed je zult kunnen zien wat het dimmen precies doet.
Voor dit soort dingen lijkt het me best een goed alternatief dan met de echte hardware aan de slag te zijn.
Ik weet niet of wat ik verander, daar zou blijven staan, daarom heb ik de wijzigingen eerst weer ongedaan gemaakt voor ik 'm afsloot.

Voor zover ik het weet, wordt niks opgeslagen zolang je niet op save drukt.

Zie hoe meer ik de leds aansluit hoe groter de chaos wordt met de bedrading.
Is het misschien een idee om de bovenste drie leds aan te sluiten aan de bovenste grond en de onderste drie aan de onderste grond rail van het breadboard.

Of is er een betere manier ?

Project : Wokwi - Online ESP32, STM32, Arduino Simulator

Aangezien je al een aantal commentaren hebt zal ik hier voor niet verder op ingaan.

Met betrekking to visualisering:
(Één)
Je kunt de LEDs in een rechte lijn plaatsen en gewoon denken dat het een cirkel is.
(Twee)
Als je vast zit met het plaatsen van de LEDs in een cirkel op je breadboard omdat je vast zit aan het raster kun je het ontwerp ook zonder breadboard maken. Hier is een voorbeeld: wokwi geen breadboard.

Drie opmerkingen

  1. Dit is misschien wat moeilijker voor je om om te zetten naar een breadboard.
  2. Omdat de LED/weerstand tussen 5V en pin is aangesloten is de logica omgekeerd; dus LOW is aan en HIGH is uit.
  3. De twee voedingsdraden (rood) overlappen elkaar; helaas lijkt het in Wokwi niet mogelijk te zijn om draden aan elkaar te knopen (ik heb het in ieder geval niet gevonden).

(Drie)
Met het risico dat ik je teveel informatie in één keer geef een verder uitgewerkt voorbeeld met 6 LEDs. Hierbij is een breadboard gebruikt die slechts één doel heeft: de voedingslijnen aan elkaar knopen waar dat nodig is.

Het programma laat een paar dingen zien die je kunt bestuderen als je daar aan toe bent.

  1. Er zit hetzelfde probleem (HIGH/LOW) in als in de vorige versie. Om het programma duidelijker te houden zijn er twee #defines (je kunt het eigenlijk met één af)
#define ON LOW
#define OFF HIGH
  1. Het programma maakt gebruik van een array van pinnen voor de LEDs. Iedere keer dat je jezelf betrapt op het gebruik van nummering (ledPin1, ledPin2 enzovoorts) moet je gaan denken in arrays. Het komt uiteindelijk de leesbaarheid van het programma ten goede.

PS
Ik zie dat dit misschien op het juiste moment gekomen is :wink:

Dank je

Heel leerzaam om dit te zien als een beginner.
In wokwiki kan ik optie 2 en 3 denk ik wel maken.

Als ik het in het echt zou moeten doen , denk ik dat je al aan solderen vastzit.

In de laatste versie maak ik al gebruik van een array

const byte pinLed [] = {11,10,9,6}; 
const int Nled = sizeof(pinLed); 

void setup() {
  // put your setup code here, to run once:
  for (int n = 0; n < Nled;n++) {
    pinMode(pinLed, OUTPUT); 
  }  
}

void loop() {
  // put your main code here, to run repeatedly:
   for (int n = 0; n < Nled; n++) {
     analogWrite(pinLed[n], 255); 
   }
   
}

In nummer drie zit eigenlijk een bug die ik er bewust ingehouden heb. Omdat de logica omgedraaid is zijn de LEDs allemaal aan in het begin en zul je de eerste keer dat loop() doorlopen wordt niet zien dat de LEDs één voor één ingeschakeld worden.

In nummer twee zit ook een bewuste bug. Je zult zien dat er een korte flits zal zijn op de eerste LED. Het is duidelijker te zien als je een korte delay() opneemt aan het eind van setup().

De reden is in beide gevallen het volgende:
Alle pinnen op een AVR processor zijn na het starten een input. Als je een pin omschakelt van input naar output zal die output laag zijn. Ten gevolge van de omgekeerde logica (LOW is aan) zal de aangesloten LED dus aan gaan.
In voorbeeld twee wordt ledPin1 daarna hoog gemaakt zodat zodat de LED uit is. Maar dat is te laat.

Kijk eens (als je daar aan toe bent) of je een oplossing kunt bedenken die de korte flits voorkomt; het is erg simpel als je het eenmaal weet.

Die had ik gemist, sorry.

Een tip: het RAM geheugen van een Arduino Uno is beperkt. Probeer zoveel mogelijk het kleinste type te gebruiken voor een variabele. Aangezien er geen Arduino is met meer dan 256 pinnen past de variable Nled in een byte. Omdat het aantal LEDs nooit negatief kan zijn is byte ook de betere keuze.