74hc595 chip. Fade leds met een potmeter

Dit is de "gecorrigeerde code" voor de missende { en } voor de laatste code in je vorige onderwerp.

    for (int i = 0; i < NUMELEMENTS(pulseWidths); i++)
    {
      if (pulseWidths[i] > 0) {
        data |= 1 << i;
      }
    }

In die code was het geen probleem om het zonder de accolades voor de for-loop te doen maar ik denk dat ik nu begrijp hoe het komt dat het een rommeltje is geworden.

Opmerking:
de if die ik in bericht 13 gebruikte was als voorbeeld; hetzelfde geldt voor for of while.

Dank je

Dan is er een ander probleem

ook met deze code geen leds die branden.

Je hebt een bedradingsfout. Deze is erg moeilijk te zien omdat deze niet direct getoond wordt; misschien een wokwi bug.

Klik op de verbinding in het rood gemarkeerde blok. Je verwacht (denk ik) geen groene stippellijn en zeker niet één die buiten deze twee juncties gaat. Als je die groene lijn naar beneden volgt en vervolgens naar links (als deze de rode Vcc lijn raakt) eindigt deze bij de linker rode junctie. Dat lijkt op een kortsluiting tussen Vcc en GND (en misschien is dat het ook voor wokwi).

Wat je verwacht is het onderstaande

De oplossing voor je probleem is om de lijn zoals getoond in het eerste plaatje te verwijderen (delete).

Daarna werkt het.

Dank je

Ik zie de groene lijn nog steeds niet
Maar als ik de verbinding tussen de 2e en 3e junction verwijder en weer opnieuw doe, werkt alles

Werkend voorbeeld hoe je met een pot meter de helderheid dynamisch krijgt

Zie jij nog gekke zaken ?

Zo niet, dan is het tijd om de andere 5 potmeters aan te sluiten.

Ja, dat je probeert 7 potentiometers te lezen maar er maar 6 analoge ingangen zijn :slight_smile:

Het enige vreemde is dat ik met zwevende ingangen (A1..A5) rare effecten zou verwachten; maar wokwi simuleert die zwevende ingangen misschien niet.
Dat probleem zal opgelost zijn als je de potentiometers aansluit.

Ik vind het visuele effect niet echt sterk; met wat goede wil kan ik drie verschillende intensiteiten zien (0, iets in het midden en maximaal). Dat is niet jouw fout. Om echt te kunnen zien wat er gebeurt zou je de logic analyser weer moeten aansluiten; in dit geval op de uitgangen van de 74HC595. We weten dat de communicatie tussen de Arduino en de 74HC595 werkt dus daar hoeven we in principe niet meer naar te kijken.

PS
Als je de Uno vervangt door een Nano heb je 8 analoge ingangen. A6 en A7 zijn pure analoge ingangen, er zit geen digitale functionaliteit in.

oke, ik kan dat proberen.

Nog nooit met een nano gewerkt.

Dus het plan is nu

  1. Vervang de uno met een nano
  2. sluit alle potmeters aan

Misschien is nu die snelheid een oplossing maar dat was het volgende project.

Ben je hiermee eens ?

De software is compatibel; alleen is de pinout wat anders.

Als je het ooit wilt testen op je werk moet je daar wel een Nano tot je beschikking hebben; en waarschijnlijk een soldeerbout en soldeer.

Ik zou het beperken to 6 voor de eerste 6 LEDs (Q1..Q6) van de 74HC595.
Daarna zou ik proberen om de laatste LED (Q7) automatisch te laten faden.

oops. solderen staat nog op mijn lijst
Net zoals 3D printen

Waarom maar 6.
Dan kan ik ook gewoon de uno gebruiken ?

Ja. Dan hoef je niet alles opnieuw te tekenen in wokwi. En je kunt je kennis van automatisch faden weer verversen; volgens mij heb je zoiets al in één van je vorige projecten gedaan.

oke

Daarom dus.

Oke, dat houdt me wel het komende weekend van de straat en misschien wel langer

Denk wat langer. Krijg de bedrading voor 6 potmeters niet goed.

ik kom tot dit :

Maar ergens heb ik weer een fout gemaakt denk ik omdat geen led meer brandt.

sorry.

Het werkt wel

maar ik blijf de bedrading een puinhoop vinden.

Hopelijk bestaat er een manier om alles er netter te laten uitzien.

En als we dat voor elkaar krijgen, ga ik kijken of ik de 7e led fadend kan krijgen.

En led 6 en 7 reageren nu op een potmeter wat ook niet goed is.

Excuseer me mijn directheid even.
Maar je hebt een mooie kerstboom van de potmeters gemaakt, en dat is geen compliment.
Echter maakt dat voor het technische gedeelte niets uit, maar wel voor hoe het er op het oog uit ziet.
Je kunt de potmeters in een vertikale lijn opstellen (ik zou dat aan de linkerzijde doen), en ze een kwartslag tegen de klok in draaien.
Wanneer je dat doet, kun je alle oranje lijnen dezelfde route laten lopen, zonder dat deze elkaar kruisen, en tegelijk zo min mogelijk andere lijnen kruisen.
Dat is met de huidige opstelling nog niet gelukt.
Dan kun je ook de zwarte en de rode voedingslijnen voor de potentiometers ieder als 1 lijn met 6 aftakkingen tekenen.
Daarmee raak je dan dus de boom kwijt.
Hierdoor krijg je wel kruisigen met de oranje lijnen, maar elke kruising is dan kort en komt ook maar 1 keer voor, dat maakt het veel overzichtelijker.
Dat doe je eigenlijk ook al bij de LEDs en de 595 zo, en daar ziet het er wel een stuk strakker uit.
Dit betekent dus dat naast je Arduino eerst de zwarte en rode lijnen omhoog lopen en dan de 6 oranje lijnen steeds een stap verder naar links naar beneden lopen.
Verder zie ik weer een lijn die onnodig over de header van de Arduino heen loopt, en in potentie dan dus met 10 pinnen contact zou kunnen maken.

Overigens maakt het voor jouw oog wel uit in welke volgorde de potmeters zijn aangesloten op de analoge ingangen, maar voor je code maakt het niet heel veel uit als de potmeter aan A1, niet voor LED 1 is maar voor LED 5 bijvoorbeeld.
Als je dat moet doen om het schema strakker te krijgen, vind ik het in ieder geval de moeite waard.

Ik liet de apparaten op hun plek zitten, maar maakte het bedradingsschema overzichtelijker door ze in verschillende kleuren op elkaar te stapelen, maar aan de uiteinden gescheiden.

Klik voor WOKWI diagram.json
{
  "version": 1,
  "author": "sterretje",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 231, "left": -39, "attrs": {} },
    {
      "type": "wokwi-74hc595",
      "id": "sr1",
      "top": 151.74,
      "left": 168.5,
      "rotate": 90,
      "attrs": {}
    },
    { "type": "wokwi-led", "id": "led2", "top": 6, "left": 138.2, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led3", "top": 6, "left": 109.4, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led4", "top": 6, "left": 80.6, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led5", "top": 6, "left": 51.8, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led6", "top": 6, "left": 23, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led7", "top": 6, "left": -5.8, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led8", "top": 6, "left": -34.6, "attrs": { "color": "red" } },
    {
      "type": "wokwi-resistor",
      "id": "r1",
      "top": 100.8,
      "left": -38.95,
      "rotate": 90,
      "attrs": { "value": "353" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r2",
      "top": 100.8,
      "left": -10.15,
      "rotate": 90,
      "attrs": { "value": "353" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r3",
      "top": 100.8,
      "left": 18.65,
      "rotate": 90,
      "attrs": { "value": "353" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r4",
      "top": 100.8,
      "left": 47.45,
      "rotate": 90,
      "attrs": { "value": "353" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r5",
      "top": 100.8,
      "left": 76.25,
      "rotate": 90,
      "attrs": { "value": "353" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r6",
      "top": 100.8,
      "left": 105.05,
      "rotate": 90,
      "attrs": { "value": "353" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r7",
      "top": 100.8,
      "left": 133.85,
      "rotate": 90,
      "attrs": { "value": "353" }
    },
    { "type": "wokwi-potentiometer", "id": "pot1", "top": 238.7, "left": -153.8, "attrs": {} },
    { "type": "wokwi-potentiometer", "id": "pot2", "top": 238.7, "left": -278.6, "attrs": {} },
    { "type": "wokwi-potentiometer", "id": "pot3", "top": 123.5, "left": -153.8, "attrs": {} },
    { "type": "wokwi-potentiometer", "id": "pot4", "top": 123.5, "left": -278.6, "attrs": {} },
    { "type": "wokwi-potentiometer", "id": "pot5", "top": 8.3, "left": -163.4, "attrs": {} },
    { "type": "wokwi-potentiometer", "id": "pot6", "top": 8.3, "left": -278.6, "attrs": {} }
  ],
  "connections": [
    [ "sr1:SHCP", "uno:3", "gray", [ "h18", "v38.4", "h-52" ] ],
    [ "led8:A", "r1:1", "green", [ "v0" ] ],
    [ "led7:A", "r2:1", "green", [ "v0" ] ],
    [ "led6:A", "r3:1", "green", [ "v0" ] ],
    [ "r1:2", "sr1:Q7", "green", [ "v56.4", "h220.8" ] ],
    [ "r2:2", "sr1:Q6", "green", [ "v46.8", "h192" ] ],
    [ "r3:2", "sr1:Q5", "green", [ "v37.2", "h163.2" ] ],
    [ "led5:A", "r4:1", "green", [ "v0" ] ],
    [ "r4:2", "sr1:Q4", "green", [ "v27.6", "h134.4" ] ],
    [ "led4:A", "r5:1", "green", [ "v0" ] ],
    [ "r5:2", "sr1:Q3", "green", [ "v18", "h105.6" ] ],
    [ "led3:A", "r6:1", "green", [ "v0" ] ],
    [ "r6:2", "sr1:Q2", "green", [ "v8.4", "h76.8" ] ],
    [ "r7:2", "sr1:Q1", "green", [ "h0" ] ],
    [ "sr1:DS", "uno:2", "cyan", [ "h18", "v67.2", "h-42.5" ] ],
    [ "sr1:STCP", "uno:4", "blue", [ "h18", "v48", "h-61.5" ] ],
    [ "led2:A", "r7:1", "green", [ "v0", "h9.6" ] ],
    [ "pot1:SIG", "uno:A0", "orange", [ "v19.2", "h66.8", "v115.2", "h217" ] ],
    [ "pot2:SIG", "uno:A1", "gold", [ "v19.2", "h191.6", "v115.2", "h226.5" ] ],
    [ "pot3:SIG", "uno:A2", "green", [ "v19.2", "h66.8", "v230.4", "h236" ] ],
    [ "pot4:SIG", "uno:A3", "limegreen", [ "v19.2", "h191.6", "v230.4", "h245.5" ] ],
    [ "pot5:SIG", "uno:A4", "violet", [ "v19.2", "h76.4", "v345.6", "h255" ] ],
    [ "pot6:SIG", "uno:A5", "gray", [ "v19.2", "h191.6", "v345.6", "h264.5" ] ],
    [ "uno:GND.1", "sr1:GND", "black", [ "v0" ] ],
    [ "sr1:GND", "led8:C", "black", [ "h0" ] ],
    [ "sr1:GND", "sr1:OE", "black", [ "h-9.6", "v9.6", "h48", "v-48" ] ],
    [ "sr1:GND", "led7:C", "black", [ "h0" ] ],
    [ "sr1:GND", "led6:C", "black", [ "h0" ] ],
    [ "sr1:GND", "led5:C", "black", [ "h-124.8", "v-153.6" ] ],
    [ "sr1:GND", "led4:C", "black", [ "h0" ] ],
    [ "sr1:GND", "led3:C", "black", [ "h0" ] ],
    [ "sr1:GND", "led2:C", "black", [ "h0" ] ],
    [ "pot6:VCC", "pot5:VCC", "red", [ "v28.8", "h124" ] ],
    [ "pot6:GND", "pot5:GND", "black", [ "v38.4", "h105.6" ] ],
    [ "pot4:VCC", "pot3:VCC", "red", [ "v28.8", "h95.2" ] ],
    [ "pot4:GND", "pot3:GND", "black", [ "v38.4", "h115.2" ] ],
    [ "pot2:GND", "pot1:GND", "black", [ "v38.4", "h115.2" ] ],
    [ "pot2:VCC", "pot1:VCC", "red", [ "v28.8", "h104.8" ] ],
    [ "pot5:VCC", "pot3:VCC", "red", [ "v28.8", "h56.8", "v115.2", "h-48" ] ],
    [ "pot3:VCC", "pot1:VCC", "red", [ "v28.8", "h47.2", "v115.2", "h-48" ] ],
    [ "pot5:GND", "pot3:GND", "black", [ "v38.4", "h67.2", "v115.2", "h-48" ] ],
    [ "pot3:GND", "pot1:GND", "black", [ "v28.8", "h57.6", "v124.8", "h-57.6" ] ]
  ],
  "dependencies": {}
}

Geen probleem met je directheid.
Ik ben hier om te leren.

Ga jouw tekst een paar keer doorlezen om even goed te kijken hoe jij het bedoeld.
Als ik het nu lees, krijg ik geen plaatje in mijn hoofd hoe het eruit ziet.

IK heb jouw idee geprobeerd in wokwi , alleen lijkt het erop dat ik de potmeters niet kan draaien.

To rotate a component in Wokwi, click on it to select it, then press the R key on your keyboard.

Zojuist even getest, en dat werkt.
In de korte zoektocht hierna, zag ik ook dat je een vooringestelde waarde kunt meegeven aan een potmeter, waardoor je deze bijvoorbeeld in het midden kunt laten beginnen.
Voor wat van de vorige experimenten zou dat ook mooi geweest zijn.

Verder heb ik zojuist ook nog even in jouw laatste Wokwi link ziten spelen.
Wanneer je de pijltjes op je toetsenbord gebruikt om je componenten te (ver)plaatsen, worden ze in een raster gehouden.
Dat betekent dat je ze heel mooi onder/boven/naast elkaar kunt plaatsen en daarbij ook een strakke onderlinge afstand kunt aanhouden.
Ik vermoed dat het daarmee ook beter gaat uitkomen om uiteindelijk de draden op de juiste plaatsen contact te laten maken met deze componenten (ik heb we eens draden voorbij zien komen die wel goed leken, maar toch geen verbinding bleken te maken in je Wokwi.
Dit is dus een verschil met wanneer je de componenten met de muis en op de hand verplaatst, dus wanneer je ze eerst met de muis in de buurt zet van waar je ze wil hebben, kun je daarna de pijltjes toetsen gebruiken om in dat raster terecht te komen.

Dank je

Is dit wat je bedoeld ?

Dan kan ik vanmiddag of vanavond gaan werken aan de bedrading