Sida 3 av 9

Re: Fagges LED termometer

Postat: 9 juni 2013, 19:56:48
av Fagge
LaRda, Gahh, din glädje dödare.
Den där LED-tejpen såg ju intressant ut för ändamålet. :oops:

Re: Fagges LED termometer

Postat: 9 juni 2013, 21:19:41
av Swech
Klas Kenny,
Om man har viahål i paddar så suger de åt sig tennet om
man dispenserar och kör i lödugn. Resultatet kan bli en dålig lödning
eftersom det blir för lite tenn kvar till komponenten

Swech

Re: Fagges LED termometer

Postat: 9 juni 2013, 21:27:21
av tecno
Helt rätt Swech, men i detta specifika fallet där 99% kommer att handjaga dit komponenterna spelar det ingen som helst roll.

Re: Fagges LED termometer

Postat: 9 juni 2013, 21:57:06
av Klas-Kenny
Ja det förstås. :)

Tänkte att det syftades på att mönsterkortstillverkaren inte skulle gilla det av någon anledning.

Re: Fagges LED termometer

Postat: 10 juni 2013, 00:29:15
av ToPNoTCH
Knåpade ihop en samlingspunkt för tempmätning nu i helgen.

Kanske vore intressant att kombinera med din termometer Fagge.
Namnlös.jpg
Kortet placeras "piggyback" på en sån här modul

Tempratur och luftfuktighet pollas via 2.4GHz radio med sådan här radio modul.

Billiga grejor men verkar funka bra.

Har förberett så man kan polla fler sensorer med olika ID, som mäter olika saker (vad man nu vill).

Data presenteras via WEB-gränssnitt som sedan samlas in via ett curl script i en Linux som kör Cacti.
Namnlös1.jpg
Den roliga dippen är när jag flyttade ut sensorn utomhus från att ha varit inomhus under testandet.

Har pinnat ut I2C om man vill köra alfanumeriskdisplay eller hänga på inomhussensor eller något kul.
Lagt Arduino bootloadr på MCU och kör Arduino kod på det.

Om vi kommer överens om ett protokoll, så kan den ju vara ett intressant komplement.

Re: Fagges LED termometer

Postat: 10 juni 2013, 09:49:07
av Fagge
Jösses vad billiga radiomoduler, tack för tipset.
Ni som har provat dessa, hur är det med räckvidden?.

Re: Fagges LED termometer

Postat: 10 juni 2013, 11:52:31
av lond
Swech skrev:Klas Kenny,
Om man har viahål i paddar så suger de åt sig tennet om
man dispenserar och kör i lödugn. Resultatet kan bli en dålig lödning
eftersom det blir för lite tenn kvar till komponenten

Swech
Man får ställa in grönmasken så att den täcker viahålet på baksidan, så att lodet inte kan "rymma". Så gör vi på jobbet med tex QFN-kapslar.

/// Marcus

Re: Fagges LED termometer

Postat: 12 juni 2013, 23:51:28
av Fagge
Nu har jag putsat lite till & bland annat expanderat SPI/ISPkontakten med 3 portpinnar till, för dom som senare vill kunna löda dit ett expansionskort för t.e.x dom där radiomodulerna som ToPNoTCH tipsade om.
Längst ner i botten av kortet drog jag även fram ett par paddar för att kunna tappa ur den råa spänningen ifrån DC-Jacket. Kan ju vara bra å ha i fall den interna spänningsregulatorn skulle bli otillräcklig till framtida expansions byggen.

Samköps Info
Om vi utgår ifrån att intresset svalnat & vi bara blir 3st.
Då blir OSH billigast med sina 200kr/st, (förutsatt att tullen inte blandar sig i)
Korten får en mörklila lödmask & guldpläterade paddar.

Så hur många räcker upp handen för 200kr per mönsterkort?.
Skulle vi bli betydligt fler så kommer ju priset såklart att sjunka., men det är detta vi utgår från nu.
Frakten inom Sverige lär väll inte hamna på mer än en 50lapp skulle jag tro.

Re: Fagges LED termometer

Postat: 13 juni 2013, 09:01:01
av ensten
Jag är på.

Re: Fagges LED termometer

Postat: 13 juni 2013, 09:27:17
av tecno
När i tid pratar vi om? Just nu ebb i kassan pga storservice på bilen med kamremsbyte etc....

Intresse finns för 2-3st men priset måste ner.

ps. tänk på att detta är ultimata jul klappen

Re: Fagges LED termometer

Postat: 13 juni 2013, 12:17:43
av victor_passe
Påtal om ws2812, jag har drivit sådana (Klarar flera hundra leds) med uart på en PIC, funkar jättebra.
Har färdig kod om någon vill ha.
Kräver en pic med FOSC på 32MHz för 8bitarna eller 16MHz för 16/32bitar.
Uarten måste kunna köras på 4MBaud.

Så man kan köra på en PIC12f1840 (8 pinnars PIC), den klarar 100leds i 16bitars färg och 68 leds(1m slinga) i 24bitars färg.

Re: Fagges LED termometer

Postat: 13 juni 2013, 17:11:32
av thepirateboy
200kr ar ok for mig.

Re: Fagges LED termometer

Postat: 13 juni 2013, 18:23:30
av Micke_s
victor_passe: hur driver du ws2812 med uart:en?

Re: Fagges LED termometer

Postat: 13 juni 2013, 18:26:45
av victor_passe
skickar 2 bitar med 1 byte.

Dumpar lite kod

Kod: Markera allt

#include "ws2812.h"
#include "htc.h"

#ifdef RGB888
unsigned char pixels[NUMBER_OF_LEDS * 3];
#endif
#ifdef RGB565
unsigned char pixels[NUMBER_OF_LEDS * 2];
#endif

unsigned char reverse(unsigned char in) {
    in = ((in & 0xF0) >> 4) | ((in & 0x0F) << 4);
    in = ((in & 0xCC) >> 2) | ((in & 0x33) << 2);
    return ((in & 0xAA) >> 1) | ((in & 0x55) << 1);
}

#ifdef RGB888

RGB_TYPE getLed(unsigned char led) {
    RGB_TYPE rgb;
    rgb.G = pixels[led * 3 + 0];
    rgb.R = pixels[led * 3 + 1];
    rgb.B = pixels[led * 3 + 2];

    rgb.R = reverse(rgb.R);
    rgb.G = reverse(rgb.G);
    rgb.B = reverse(rgb.B);


    return rgb;
}

void setLed(unsigned char led, RGB_TYPE rgb) {
    rgb.R = reverse(rgb.R);
    rgb.G = reverse(rgb.G);
    rgb.B = reverse(rgb.B);

    pixels[led * 3 + 0] = rgb.G;
    pixels[led * 3 + 1] = rgb.R;
    pixels[led * 3 + 2] = rgb.B;
}

void setLeds() {
    unsigned char bitTable[4] = {0xEF, 0x0F, 0xE8, 0x08}, color;
    unsigned char gieState, leds = NUMBER_OF_LEDS;
    unsigned char *data = pixels;
    gieState = GIE;
    GIE = 0;
    while (leds--) {
        color = *data++;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color = *data++;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color = *data++;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
        color >>= 2;
        while (!TXIF);
        TXREG = bitTable[color & 0x03];
    }
    //Just delay
    for (color = 0; color < 150; color++);
    GIE = gieState;
}
#endif

#ifdef RGB565

RGB_TYPE getLed(unsigned char led) {
    RGB_TYPE rgb;
    unsigned short rgb565;
    rgb565 = pixels[led * 2 + 0];
    rgb565 |= pixels[led * 2 + 1] << 8;

    rgb565 = ((rgb.B & 0b00011111) << 11) | ((rgb.R & 0b00011111) << 6) | ((rgb.G & 0b00111111));

    rgb.G = rgb565 & 0b00111111;
    rgb.R = (rgb565 >> 6) & 0b00011111;
    rgb.B = (rgb565 >> 11) & 0b00011111;

    rgb.R = reverse(rgb.R);
    rgb.G = reverse(rgb.G);
    rgb.B = reverse(rgb.B);


    return rgb;
}

void setLeds() {
    const unsigned char bitTable[4] = {0xEF, 0xE8, 0x0F, 0x08};
    unsigned char gieState, leds = NUMBER_OF_LEDS;
    unsigned short rgb565;
    unsigned short *data = (unsigned short*) pixels;
    gieState = GIE;
    GIE = 0;
    while (leds--) {
        rgb565 = *data++;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        rgb565 >>= 2;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        rgb565 >>= 2;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        rgb565 >>= 2;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        rgb565 >>= 2;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        rgb565 >>= 2;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x01];
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x01];
        rgb565 >>= 1;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        rgb565 >>= 2;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x03];
        rgb565 >>= 2;
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x01];
        while (!TXIF);
        TXREG = bitTable[rgb565 & 0x01];
    }
    //Just delay
    for (rgb565 = 0; rgb565 < 150; rgb565++);
    GIE = gieState;
}

void setLed(unsigned char led, RGB_TYPE rgb) {
    unsigned short rgb565;

    rgb.R = reverse(rgb.R);
    rgb.G = reverse(rgb.G);
    rgb.B = reverse(rgb.B);

    rgb565 = ((rgb.B & 0b00011111) << 11) | ((rgb.R & 0b00011111) << 6) | ((rgb.G & 0b00111111));

    pixels[led * 2 + 0] = ((rgb565)&0xFF);
    pixels[led * 2 + 1] = ((rgb565 >> 8)&0xFF);
}
#endif

Re: Fagges LED termometer

Postat: 13 juni 2013, 19:00:46
av Micke_s
victor_passe: Aha, så löser du start och stopbiten.