ESP8266 som ska styra 6 st LED

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Aha det var ju ett smart drag, då fick man reda på att dom är olika i funktion.

Kanske ska skaffa en ESP 32 då den verkar passa bättre för led?

Jobbar vidare å tackar för all hjälp.
Användarvisningsbild
CPMS
Inlägg: 1530
Blev medlem: 6 december 2010, 20:34:36
Ort: Långsele, Västernorrland

Re: ESP8266 som ska styra 6 st LED

Inlägg av CPMS »

Provade för skojs skull, hade en Aurdino Nano på en platta.
Fick ta om koden med ChatGPT runt 5 gånger innan den fick det rätt men till slut så tror jag det blev som du menade.
Minskade ramptiden så videon inte skulle bli så lång.


Förresten är det någon som vet om det finns BRA breadboards att köpa? Billiga Kina dyngan blir man ju galen på!



Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Jo jag märkte att den skriver inte rätt kod första gången.
Tog din första fråga och ändrade till ESP 8266, lassa ner den till ESP:n och satt några blåa led med ett 220 ohm motstånd på anoderna.

Då kör alla dioder samtidigt upp och nedtoning.

Så jag får väl köra om den ett par gånger.

Du har nästan fått helt rätt, dock så ska dom vända och gå tillbaka i stället för att börja om (Boans)

Sedan ska man få dom att stanna på valfritt läge och starta därifrån vid ett tryck samt stänga av vid 2 tryck.

Men skam den som ger sig.

Tog lite avbrott å ylade samt spela lite congas med bandet, brukar ge nya krafter. :vissla:
Användarvisningsbild
CPMS
Inlägg: 1530
Blev medlem: 6 december 2010, 20:34:36
Ort: Långsele, Västernorrland

Re: ESP8266 som ska styra 6 st LED

Inlägg av CPMS »

:)


Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Just så, kan du lägga upp koden så kan jag prova.
Har en arduino nån stans i gömmorna.
Användarvisningsbild
CPMS
Inlägg: 1530
Blev medlem: 6 december 2010, 20:34:36
Ort: Långsele, Västernorrland

Re: ESP8266 som ska styra 6 st LED

Inlägg av CPMS »

Det här är för en Nano, säkert samma för Uno och övriga.
Kolla pin's så det blir rätt.
Ska lägga in tryck-knapp och interupt för att stoppa/starta om eller stoppa/återstarta? Behövs verkligen stänga ner också? Är ju bara att bryta matningen så stängs den ner.


Kod: Markera allt

const int pwmPins[] = {3, 5, 6, 9, 10, 11}; // PWM-utgångar
const int numPins = sizeof(pwmPins) / sizeof(pwmPins[0]);
const int fadeTime = 2000; // Tid för upp- och neddimning (ms)
const int stepTime = fadeTime / 255; // Tid per steg

int currentPin = 0;
int nextPin = 1;
int brightness = 0;
int direction = 1; // 1 = framåt, -1 = bakåt
unsigned long previousMillis = 0;

void setup() {
    for (int i = 0; i < numPins; i++) {
        pinMode(pwmPins[i], OUTPUT);
        analogWrite(pwmPins[i], 0); // Sätt alla LEDar till 0 från start
    }
}

void loop() {
    unsigned long currentMillis = millis();
    
    if (currentMillis - previousMillis >= stepTime) {
        previousMillis = currentMillis;
        
        brightness++;
        int fadeOutBrightness = 255 - brightness; // Minskar ljusstyrkan på föregående LED
        
        analogWrite(pwmPins[currentPin], fadeOutBrightness);
        analogWrite(pwmPins[nextPin], brightness);
        
        if (brightness >= 255) {
            brightness = 0; // Återställ ljusstyrka
            currentPin = nextPin; // Nästa LED blir aktiv
            nextPin += direction; // Flytta i aktuell riktning
            
            if (nextPin >= numPins - 1 || nextPin <= 0) {
                direction *= -1; // Byt riktning när vi når slutet eller början
            }
        }
    }
}
Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Man tackar.
Jo stänga ned eller standby vill ja ha,
så att den kan sitta inkopplad hela tiden och att inge extra knapp behövs.
Krångligt ska det va.

Nu ska jag bara gräva mig fram till stället där jag tror den ligger.
Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Så här blev det när jag lyckats ladda in alla filer i IDE programmet.
Stoppat in din kod och lött lite.

Lite darrig på handen så här på kvällen.


Länk
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Så här blev det när jag lyckats ladda in alla filer i IDE programmet.
Stoppat in din kod och lött lite.

Lite darrig på handen så här på kvällen.

https://youtu.be/eceTJ1RpOb0


Verkar inte fatta hur man lägger upp video.
Användarvisningsbild
CPMS
Inlägg: 1530
Blev medlem: 6 december 2010, 20:34:36
Ort: Långsele, Västernorrland

Re: ESP8266 som ska styra 6 st LED

Inlägg av CPMS »

Sätt Youtube-länken inom [media]HÄR[/media].

Sekvensen ser ut att stämma men eftersom du har olika LED så ser det lite konstigt ut, går nog att justera till lite med förkopplingsmotstånden men du ska väl så
småningom driva större LED med MOSFET eller något? Kanske bättre att använda samma LED och motstånd vid testning för att prova ut funktionen först.

Fick till pause-knapp funktion men fick lägga till interrupt och debounce för att få det stabilt, funkade inte så vidare att bara hantera den i loopen.

Försökte få till någon typ av "stäng av funktion" med dubbeltryck eller långtryck men det övergick både mitt och AI's förmåga.

Får inte till starten, efter återställning startar sekvensen med första dioden på 100%. Vill få den att börja på 0% och sen dimmra upp.

Kod: Markera allt

const int pwmPins[] = {3, 5, 6, 9, 10, 11}; // PWM-utgångar
const int numPins = sizeof(pwmPins) / sizeof(pwmPins[0]);
const int buttonPin = 2; // Knappens ingång
const int fadeTime = 2000; // Tid för upp- och neddimning (ms)
const int stepTime = fadeTime / 255; // Tid per steg

int currentPin = 0;
int nextPin = 1;
int brightness = 0;
int direction = 1; // 1 = framåt, -1 = bakåt
unsigned long previousMillis = 0;
bool isPaused = false;
bool isStopped = false;
int savedBrightness[numPins] = {0}; // Sparar LED-ljusstyrkor vid paus

// Interrupt flaggor
volatile bool buttonPressed = false;

void setup() {
    for (int i = 0; i < numPins; i++) {
        pinMode(pwmPins[i], OUTPUT);
        analogWrite(pwmPins[i], 0); // Sätt alla LEDar till 0 från start
    }
    pinMode(buttonPin, INPUT_PULLUP); // Använd intern pull-up

    // Konfigurera interrupt på pinne 2 (knappen)
    attachInterrupt(digitalPinToInterrupt(buttonPin), handleButtonPress, FALLING); // FALLING för att trigga på nedtryckning
}

void loop() {
    if (buttonPressed) {
        buttonPressed = false; // Återställ flaggan
        if (isPaused) {
            // Återuppta sekvensen
            isPaused = false;
        } else {
            // Pausa sekvensen och behåll aktuella ljusstyrkor
            isPaused = true;
        }
    }

    if (isStopped) return; // Om stoppad, gör inget

    if (isPaused) {
        // Pausläge: Behåll LED-ljusstyrkor
        for (int i = 0; i < numPins; i++) {
            analogWrite(pwmPins[i], savedBrightness[i]);
        }
        return;
    }

    unsigned long currentTime = millis();
    if (currentTime - previousMillis >= stepTime) {
        previousMillis = currentTime;

        brightness++;
        int fadeOutBrightness = 255 - brightness; // Minskar ljusstyrkan på föregående LED

        analogWrite(pwmPins[currentPin], fadeOutBrightness);
        analogWrite(pwmPins[nextPin], brightness);
        savedBrightness[currentPin] = fadeOutBrightness;
        savedBrightness[nextPin] = brightness;

        if (brightness >= 255) {
            brightness = 0; // Återställ ljusstyrka
            currentPin = nextPin; // Nästa LED blir aktiv
            nextPin += direction; // Flytta i aktuell riktning

            if (nextPin >= numPins - 1 || nextPin <= 0) {
                direction *= -1; // Byt riktning när vi når slutet eller början
            }
        }
    }
}

// Interrupt-funktion för knapptryckning
void handleButtonPress() {
    // Debounce via enkel tidshantering
    static unsigned long lastInterruptTime = 0;
    unsigned long interruptTime = millis();
    if (interruptTime - lastInterruptTime > 200) { // Debounce tid (200 ms)
        buttonPressed = true;
        lastInterruptTime = interruptTime;
    }
}


Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Jag högaktar ditt tålamod.

Det där ser ju riktigt fin ut.

Jo jag ska montera sådana här https://www.aliexpress.com/item/1005005 ... l%22%7D%7D

Som ska driva 6 st starled på 350mA så dessa var bara för att testa koden.
Ska hämta dom i kväll.

På din film startar den efter paus på samma ställe,
att det inte går att stänga av kan jag leva med ett tag.

Sedan måste jag köpa ett touch kort å se om det fungerar.

Tråkigt att vi inte bor närmare varandra,
jag har en 50 kvm lokal med prylar som jag måste rensa ut.
Kanske nått som du kunde ha roligt med?
Det mesta är kommunikation för handikappade, kablar med kontakter av alla dess slag, video, usb, nätkabel, BNC antennkabel, några lådor med olika nätdelar 5- 24 V, mm.
Så far du ner till Tokholm den närmaste tiden och har bra lastutrymme så är du välkommen.

Så givetvis även andra som läser detta.
Användarvisningsbild
CPMS
Inlägg: 1530
Blev medlem: 6 december 2010, 20:34:36
Ort: Långsele, Västernorrland

Re: ESP8266 som ska styra 6 st LED

Inlägg av CPMS »

Ska prova med en ESP32 i helgen, då slipper du touch kort för det finns inbyggt. Kan hända det går att förfina koden mer med en 32:a också.

Bara bra det är 50 mil mellan för jag har 5 gånger så stor "lokal" med grejor plus en VW Caddy. :)
Men tackar ändå.
Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Nu ska du se på fina grejer.

Fick till det med din kod och en knapp.

Ser en blinkning på led:arna när dom vänder från fullt till nerdämpning

Kanske lite för noggrann, en arbetsskada från tidigare jobb som ljustekniker.

Så här ser det ut.



Nu ska bara beröringsfunktionen fixas.

Tack än en gång.
Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Så har man pysslat lite med ESP 32 som har beröringskontroll inbyggt.

Efter installation av alla drivare och filer i Arduino IDC,
så fick vi igång en graf som visade att värdet ändrades när man kom nära eller tog i den isolerade sladden.

Så funktionen finns, nu ska man bara få in den i skissen med vandrande ljuset.

Här är lite bilder på prylarna som används.

Hittade en kylfläns med klämma från tidigare projekt som passade ganska bra till drivarkorten för ledsen.
20250403_014602.jpg
20250403_014617.jpg
20250403_015137.jpg
20250403_015152.jpg
Behöver bara 6 PWM utgångar och en beröringsingång.

Drivkretsarna är dessa https://www.aliexpress.com/item/1005005 ... cification

Sedan har jag satt ihop en ambient luxmätare för att kunna ställa ljusutbytet på dom olika leddarna.
Den består av en Arduino Nano och en Temt 6000 i en gummi propp så att inte ljus från rummet stör.
Den som är intresserad kan läsa mer här: https://www.electroschematics.com/light ... xperiment/
Det sitter en liten pot på korten där man kan ställa strömmen till Leden.

Så på´n igen och kanske får man till det?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
colliman
Inlägg: 418
Blev medlem: 10 oktober 2007, 17:59:24
Ort: Tokholm
Kontakt:

Re: ESP8266 som ska styra 6 st LED

Inlägg av colliman »

Nehe det ville sig inte.

Har nu provat ett antal förslag från AI men det stannar vid att antingen fungerar vissa kommandon ibland eller aldrig.
Har fått till det så att det går att starta och stoppa sekvensen med knapp.

Kopplade in en lite knapp via 3.5 mm monotele.
Den bryter strömmen när man tar ut den eller matningen.
Då det är en prototyp så får man vara nöjd med det.

Så får man väl sätta sig i skolbänken och se om man fattar hur man kodar till det rätt.
Trodde inte det skulle vara så svårt att få till styrningen, utan programmeringen av sekvensen skulle bli problemet.

Tack alla en än gång för hjälpen, utan den hade jag nog gett upp.

Nu kommer våren, dags att flytta ut servicebänken på gården...... 8)
Skriv svar