Fagges LED termometer
Re: Fagges LED termometer
LaRda, Gahh, din glädje dödare.
Den där LED-tejpen såg ju intressant ut för ändamålet.
Den där LED-tejpen såg ju intressant ut för ändamålet.
- Swech
- EF Sponsor
- Inlägg: 4707
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Fagges LED termometer
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
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
- tecno
- Inlägg: 27131
- Blev medlem: 6 september 2004, 17:34:45
- Skype: tecnobs
- Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
- Kontakt:
Re: Fagges LED termometer
Helt rätt Swech, men i detta specifika fallet där 99% kommer att handjaga dit komponenterna spelar det ingen som helst roll.
- Klas-Kenny
- Inlägg: 11491
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Fagges LED termometer
Ja det förstås.
Tänkte att det syftades på att mönsterkortstillverkaren inte skulle gilla det av någon anledning.
Tänkte att det syftades på att mönsterkortstillverkaren inte skulle gilla det av någon anledning.
Re: Fagges LED termometer
Knåpade ihop en samlingspunkt för tempmätning nu i helgen.
Kanske vore intressant att kombinera med din termometer Fagge.
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.
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.
Kanske vore intressant att kombinera med din termometer Fagge.
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.
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.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Fagges LED termometer
Jösses vad billiga radiomoduler, tack för tipset.
Ni som har provat dessa, hur är det med räckvidden?.
Ni som har provat dessa, hur är det med räckvidden?.
Re: Fagges LED termometer
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.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
/// Marcus
Re: Fagges LED termometer
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.
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.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- tecno
- Inlägg: 27131
- Blev medlem: 6 september 2004, 17:34:45
- Skype: tecnobs
- Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
- Kontakt:
Re: Fagges LED termometer
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
Intresse finns för 2-3st men priset måste ner.
ps. tänk på att detta är ultimata jul klappen
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: Fagges LED termometer
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.
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.
-
- EF Sponsor
- Inlägg: 2108
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: Fagges LED termometer
skickar 2 bitar med 1 byte.
Dumpar lite kod
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