- Beszántaná a marketingért felelős részlegét az Intel
- A látszat ellenére helyesen működik az NVIDIA-féle Resizable BAR implementáció
- A Perplexity felvásárlását fontolgatja az Apple
- XIV. Leó pápa szerint a politikusoknak kezdeniük kell valamit az AI-veszélyekkel
- Beperelték az Apple-t a részvényesei, mert túlzott az AI-fejlesztések kapcsán
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Vízpart, vakáció és hardverek
- RAM topik
- A látszat ellenére helyesen működik az NVIDIA-féle Resizable BAR implementáció
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Házimozi belépő szinten
- Asztrofotózás
- OLED monitor topik
- Mini-ITX
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
-
Saua
tag
válasz
dave0825 #1529 üzenetére
ez is jól működik csak bluetooth kapcsolatot használ: [BlueTerm]
-
dave0825
őstag
válasz
dave0825 #1357 üzenetére
Látom, nem sok mindenki tud hozzászólni, vagy nem nagyon vagytok itt, vagy nem nagyon érdekel már senkit.
Annyi előrehaladás lett (vagy talán megoldás), hogy lejjebb vettem a feszültséget az lm2596-on 4,5V-ra, és így megy az infra is, tehát működik a távirányító. Ha följebb viszem a feszültséget, akkor nem működik. Az Arduino is megy 4,5V-on még rendesen (lejjebb véve már látszik a led-ek fényerején, de a 4,5V-on még nem). Lehet, hogy marad így. Egyébként ezt egyáltalán nem értem, mert usb-n is 5,04V-ot mértem, szóval hogy külső tápról miért kell neki kevesebb...
-
-
lajbi30
csendes tag
válasz
dave0825 #1262 üzenetére
//Sample using LiquidCrystal library
#include <LiquidCrystal.h>/*******************************************************
This program will test the LCD panel and the buttons of
the DFRobot LCD Keypad Shield for Arduino
Product code : RB-Dfr-07
http://www.robotshop.com/dfrobot-lcd-keypad-shield-arduino-1.htmlNote cct error identified by Arduino forum discussion at:
http://arduino.cc/forum/index.php/topic,96747.0.html
which advises insertion of a Germanium 1n34a or a Schotky 1N5819
diode between pin 10 and the base of Q1 (K to pin 10).sample code originally by Mark Bramwell, July 2010
modifications by Dion Weston, March 2012********************************************************/
// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);// define some values used by the panel and buttons
int backLight = 10; // LCD Panel Backlight LED connected to digital pin 10
int lightLevel = 255; // Initialise light full on
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5// read the buttons
int read_LCD_buttons()
{
adc_key_in = analogRead(0); // read the value from the sensor
// my [Mark Bramwell's] buttons when read are centered at these valies: 0, 144, 329, 504, 741
// we add approx 50 to those values and check to see if we are close
if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
return btnNONE; // when all others fail, return this...
}void setup()
{
lcd.begin(16, 2); // start the LCD library
lcd.setCursor(0,0); // move cursor to beginning of line "0"
lcd.print("Backlight adjust"); // print a simple message}
void loop()
{
analogWrite(backLight, lightLevel);
lcd.setCursor(13,1); // move to position 13 on the second line
lcd.print(lightLevel);lcd.setCursor(0,1); // move to the begining of the second line
lcd_key = read_LCD_buttons(); // read the buttonsswitch (lcd_key) // depending on which button was pushed, we perform an action
{
case btnRIGHT:
{
lcd.print("LED On ");
lightLevel = 255;
break;
}
case btnLEFT:
{
lcd.print("LED Off ");
lightLevel = 1;
break;
}
case btnUP:
{
lcd.print("LED Fade Up ");
if (lightLevel < 255) lightLevel += 1;
break;
}
case btnDOWN:
{
lcd.print("LED Fade Down ");
if (lightLevel > 1) lightLevel -= 1;
break;
}
case btnSELECT:
{
lcd.print("Select ");
break;
}
case btnNONE:
{
lcd.print(" ");
break;
}
}}
Kilyelző fényerejének változtatása
-
zka67
őstag
válasz
dave0825 #1267 üzenetére
Szia, parancsolj:
const unsigned char minutes[60][6] = {
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // perc 0
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // perc 1
...
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // perc 59
};
const unsigned char hours[12][6] = {
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // ora 0
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // ora 1
...
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // ora 11
};
const unsigned char temperatures[17][6] = {
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // fok 15
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // fok 16
...
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // fok 30
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // ures
};
void checkMinute() {
unsigned char second,minute,i;
second=Clock.getSecond();
minute=Clock.getMinute();
for (i=0; i<6; i++) data[i] = minutes[minute][i];
showpattern();
}
void checkHour() {
unsigned char hour;
hour=Clock.getHour(h12, PM);
for (i=0; i<6; i++) data[i] = hours[hour % 12][i];
showpattern();
}
void checkTemperature() {
unsigned char temperature;
temperature=Clock.getTemperature() - 15;
if (temperature >= 16) temperature = 16;
for (i=0; i<6; i++) data[i] = temperatures[temperature][i];
showpattern();
}vagy szerintem így sokkal szebb, csak másképp kell meghívnod (ebben az esetben természetesen semmi szükség a fenti rutinokra, checkMinutes stb...):
void checkValue(const unsigned char *table) {
unsigned char i;
for (i=0; i<6; i++) data[i] = *table++;
showpattern();
}
checkValue(&minutes[Clock.getSecond()][0]);
checkValue(&hours[Clock.getHour() % 12][0]);
checkValue(&temperatures[Clock.getTemperature()][0]);Remélem a fordító elfogadja a programot, ha meg nem, majd még igazítunk rajta
Szerk: mégiscsak megírtam...
-
zka67
őstag
válasz
dave0825 #1264 üzenetére
Szia, örülök neki, hogy működik a programod
Viszont a REPEAT_TIME-ot nem csökkentened kellene, hanem növelned. Ez mondja meg, hogy mennyi az az idő, amin belül ha ugyan az a kód jön, az ismétlésnek számít. Lehet, hogy ezért ugrik át a beállításoknál. Vedd feljebb 500-ra, szerintem azzal már jónak kell lennie.
a switch (results)-ot át kellett írnom switch (results.value)-ra...
Jaja, én jegyzettömbe írtam a programot
De a presult is megfelelő lett volna...Szerintem sokkal egyszerűbb, átláthatóbb és jóval rövidebb lenne a programod, ha konstans tömbökben tárolnád a megjelenítendő adatokat...
Nem fogom megírni helyetted a programot, tanuld csak szépen a programozást
-
zka67
őstag
válasz
dave0825 #1251 üzenetére
(#1251) dave0825 Én pont ezért nagyon szeretem ezt a fórumot, de leginkább ezt a topikot, mert az esetek nagyon nagy részében mindig sikerül megoldást találni. Nekem legalábbis ritka volt, amikor nem tudtak itt segíteni az emberek.
(#1250) softguner Zseniális ez a csapatmunka
A C Programozás topikban is hasonlóan segítőkészek az emberek
-
zka67
őstag
válasz
dave0825 #1257 üzenetére
Szia, megnéztem a decode_results típust. A következőképpen módosítsd a programot:
#define VK1 0x12345678
#define VK2 0x87654321
#define REPEAT_TIME 250
decode_results results;
void IRHandler(void) {
static unsigned long pmillis, pvalue;
if (irrecv.decode(&results)) {
irrecv.resume();
if (results.value == pvalue) {
if ((millis()-pmillis) < REPEAT_TIME) {
pmillis = millis();
return;
} // Ez hiányzott
}
pmillis = millis();
pvalue = results.value;
switch (results) {
case VK1:
// Key 1 lenyomasakor
break;
case VK2:
// Key 2 lenyomasakor
break;
}
}
}
void loop() {
IRHandler();
} -
zka67
őstag
-
zka67
őstag
válasz
dave0825 #1248 üzenetére
Szia, szerintem ennek működnie kell:
Természetesen a gombok kódjait írd át
#define VK1 0x12345678
#define VK2 0x87654321
#define REPEAT_TIME 250
void IRHandler(void) {
static unsigned long pmillis;
static decode_results results, presults = 0;
if (irrecv.decode(&results)) {
irrecv.resume();
if (results == presults) {
if ((millis()-pmillis) < REPEAT_TIME) {
pmillis = millis();
return;
}
pmillis = millis();
presults = results;
switch (results) {
case VK1:
// Key 1 lenyomasakor
break;
case VK2:
// Key 2 lenyomasakor
break;
}
}
} -
zka67
őstag
válasz
dave0825 #1243 üzenetére
Szia, a 2. esetben, a case-s megoldásodnál kimaradtak a break; -ek
A switch utasítás csak elugrik a megfelelő case ágra, és onnan folytatja a program futását. Azaz, miután lefutott a case 1 ág, mivel nincs break, ezért a case 2 ágon folytatja a futást.
Az infrád ismétlését pedig a következőképpen tudod megszüntetni:
Amikor jön az adat, megnézed, hogy az előző adattal megegyezik-e? Ha nem, akkor új kód, feldolgozod, ha igen, megnézed, hogy mennyi idő telt el az előző adat óta. Ha több, mint 250ms, akkor új adatként feldolgozod, ha kevesebb, akkor figyelmen kívül hagyod.
Ezután az utolsó kódot elmented, és törlöd az eltelt időt.
-
softguner
csendes tag
válasz
dave0825 #1243 üzenetére
Mi lenne ha így csinálnád?
if (irrecv.decode(&results))
{
irrecv.resume();
}
switch (results.value)
{
case 0x7A6E10BA:
// lefut az utasítás sorozat amit akarsz lehet egy függvény is XY()
results.value=0;
break;
case "másik gomb"
// lefut az utasítás sorozat amit akarsz lehet egy függvény is XY()
results.value=0;
break;
}Vagy ha csak 1 gombot akarsz használni módok változtatására, akkor ez okés, de a resuls.value változót, akkor is le kell nullázni, mert ha nem akkor folyamatosan változtatni fogja az üzemmódot, vagy teljesen fals lesz a megjelenített információ.
Méghozzá azért, mert ez a rész.
if(results.value == 0x7A6E10BA)
{
Mode++;
}Ez mindig igaz lesz.
Nagyon jó cucc amit csinálsz, remélem sikerülni fog. Amikor a ledmátrixról beszéltél bevallom őszintén nem érdekelt annyira, de ez a megjelenítő ez nagyon ötletes, és baromi jó lesz ha sikerül
-
tvamos
nagyúr
válasz
dave0825 #1236 üzenetére
Nem veszunk ossze. Vegyel nyakhoz valo cuccot, amit a kollega javasolt, azzal sokkal jobban jarsz, mint a rozsdamaroval. Vagy rendelj egy ilyet: [link]. No-clean Flux, nem kell lemosni. En a regi fajtat le szoktam mosni, mert nem bizok semmi savas kemhatasu anyagban, ami a nyakra kerul. (Igazabol mindig lemosom flux cleanerrel, hogy szep legyen...)
(#1237) dave0825
Sajnos a linkjeid nalunk a proxi tiltja... -
gyapo11
őstag
válasz
dave0825 #1237 üzenetére
Nem látok hibát. Nem tudom hogy működik az infra vevő program. A delay(100) miatt kb. tizedmásodpercenként lefut a loop, és ha mindig igaz az (irrecv.decode(&results)), akkor gyors egymásutánban fogja léptetni a Mode változót, és felváltva fogja kiírni az értékeket.
Egy gombnyomás után meddig igaz a feltétel? Vagy ez maga a lekérdezés? Milyen gyakran küldi a távirányító a kódot? Lehet hogy lenyomod fél másodpercre, és már kiküldi 3-szor, az arduino meg lehet beolvassa mindháromszor. -
gyapo11
őstag
válasz
dave0825 #1236 üzenetére
100 g-os.
A fenyőgyanta és ez a forrasztózsír tuti mindkettő. Az 50 cm3 csak 250 évre lesz elég.
Nekem is van pisztolypákám, és szeretem is használni, az a trükkje, hogy ne legyen túl meleg. Az pedig nálam úgy megy, ha nem csak simán meghajlított drótot használok, hanem összesodrok a végén pár menetet. Így az összesodort rész nem fűt, csak a szabadon maradt drótrésztől kapja a meleget, így kevésbe lehet leégetni vele a fóliát meg az érzékenyebb alkatrészeket. Lassabban melegszik föl, nem kell annyit kattogtatni. -
gyapo11
őstag
válasz
dave0825 #1233 üzenetére
Nem tudom mi lehet a CR, talán rozsdaoldó? Az meg foszforsav tartalmú, ami elég gyenge sav, a foszfátsók meg elég stabilak, nem nedvszívók. Szóval nem olyan rossz az, persze le kell törölni a fölösleget, mert vezeti az áramot. Nekem a hagyományos fenyőgyantán kívül van egy TS 570 forrasztózsírom, kb. 500 évre elég, ha nem csatornaforrasztásra használom.
-
-
softguner
csendes tag
válasz
dave0825 #1221 üzenetére
Nem tudom, hogy mire használod az infrát, de én így oldottam meg, hogy csak 1x hajtsa végre az utasításokat.
results.value=0;
if (irrecv.decode(&results))
{
irrecv.resume();
}
Serial.println("Infra value: ");
Serial.println(results.value);
if (serialon != 0 )
{
switch (results.value)
{
case 553536955:
radio.setStandByOn();
if (playstate == 1 && radioon == 0)
{
command(0x0E, 0x00);
Serial.println("Pause");
playstate=0;
results.value=0;
myGLCD.clrScr();
myGLCD.print("PAUSE", 28, 20);
myGLCD.update();
}
else
{
command(0x0D, 0x00);
Serial.println("Play");
playstate = 1;
results.value=0;
myGLCD.clrScr();
myGLCD.print("PLAY", 30, 20);
myGLCD.update();
}
radioon = 0;
break;Mindig nullára állítottam az infra => results.value változót, és így mindig csak 1x fut le a kívánt programrész, a távirányító megnyomásakor.
Szerintem lemaradtam, de te mire használod az infrát? Én egy mp3 lejátszót és egy tea5767-es rádiót kapcsolok vele. Nálam ez a megoldás működik, lehet nálad van valami speciális dolog. Itt pl azért kell így megoldanom, mert a play/pause gomb egy és ugyan az, és ha már épp megy a lejátszás, akkor értelemszerűen pause jön a következő gombnyomásra, ellenben play kivéve ha a rádió üzemelt éppen, mert akkor így is úgy is play lesz.
-
-
gyapo11
őstag
válasz
dave0825 #1196 üzenetére
Az arduino sokkal gyorsabb mint az ember, nekem mikrokapcsolóval 40-50 ms-et sikerült legrövidebbet gombot nyomni, ennyi idő alatt nagyon sokszor be tudja olvasni, tehát mindenképpen kezelni kell a prellt, vagy lehet külső áramkörrel, és akkor elég a lenyomást-felengedést detektálni. Elég egy RC tag, az már megfogja a prellt.
A programodra nem tudok, nekem már túl bonyolult átlátni ekkora programot. -
zka67
őstag
válasz
dave0825 #1196 üzenetére
Szia, belinkelhetnéd a programodat.
Csak megkérdezem, hogy ti megszakításokat nem szoktatok használni? Én úgy csinálnám meg a helyedbe, hogy valamelyik timer megszakítással időzíteném a ledeket, A megszakításkor azonnal indítanék egy másik timert, ami a fényerőt fogja szabályozni, azaz annak a megszakításakor egyszerűen csak kikapcsolnám az összes ledet. Ha megszakításokkal dolgozol, akkor tulajdonképpen a programod azt csinálhat közben, amit akarsz, nem kell az időzítésekkel foglalkozni, mert azt a timer-ek elintézik.
Jelen esetben elég neked egy 500Hz-es megszakítás, azzal már 100Hz-es frissítésed lesz. A másik timer-rel pedig 2ms-nál rövidebb időt állítsd be (amit természetesen majd változtathatsz), és kész a fényerőszabályzásod is.
Ha gondolod, szívesen elküldöm neked az órám programját, igaz az nem arduinora készült, hanem egy arm uC-re, de ez a lényegen nem változtat, az elvet szerintem megérted belőle. (Sima C program...)
-
gyapo11
őstag
válasz
dave0825 #1185 üzenetére
Ha a soros portra ír valamit, az időbe kerül, emiatt a loop lefutási ideje nő, vagyis másodpercenként kevesebbszer fog lefutni. A 100 ezer az egy mérés volt, persze az utasítások számától és végrehajtási idejétől függően ez mindig változik.
A delay nem iparos, tesztelni-próbálgatni jó, de végleges programban nem ajánlott használni. Helyette változókat kell használni állapotjelzésre, és ezek értékétől függően elágaztatni a programot.
Nyomógombnál kell egy 30 ms-os várakozás, ezalatt lezajlik a prell, utána elvégezni a feladatot, itt pl. növelni egy változó értékét, és addig várni amíg föl nem engedik a gombot. A várni az nem delay, hanem egy if.
Ilyesmi:
if(gombjelzo==1 && gomb lenyomva)
{;}
else if(gombjelzo==1 && gomb fölengedve)
{
gombjelzo=0;
}
A gombjelzőbe akkor kell 1-et tenni, amikor a gombot lenyomták. Amíg gombjelző 1 és a gomb le van nyomva, addig az else ág nem hajtódik végre. Viszont ha a gombot fölengedték, akkor az if feltétele nem igaz, az else ág végrehajtódik, beírja a gombjelzőbe a 0-t, és innentől az if ág és az else ág sem hajtódik végre többet a gombjelző miatt, mivel abban 0 van. Ugyanez a logika a lenyomáskor is:
if(gombjelzo==0 && gomb fölengedve)
{;}
else if(gombjelzo==0 && gomb lenyomva)
{
gombjelzo=1;
} -
zka67
őstag
válasz
dave0825 #1178 üzenetére
Szia, mint említettem, a tranzisztorok invertálnak, lehet, hogy ez lesz a gond nálad. Melyik típust kötötted a row kimenetekre és melyiket a col kimenetekre?
A programodban egy hibát találtam, a col tömböd csak 5 elem hosszú, te viszont sok helyen hivatkozol a 6. elemére is.
-
Danex
addikt
válasz
dave0825 #1149 üzenetére
Én is ugye nem rég szívtam az IR vevővel, hogy túl sok zaj volt az áramkörben és véletlen értékeket dobált. (servo mozgásakor, digitális LED vezérlésekor stb).
Végül úgy oldottam meg, hogy elszeparáltam ,hogy ne az arduinoról kapja az 5V-ot így már jó volt.
Bár írtad, hogy nem a szokványos érzékelőd van, így lehet ott nem megoldás.
-
dave0825
őstag
válasz
dave0825 #1148 üzenetére
Először is bocs, nem válasz akart lenni.
Még egy érdekesség, ami elég nagy mosolyt csalt az arcunkra.
Haverom laptopján egy alap infra olvasó programot futtatva arduino-n, majd egy távirányítót nyomkodva ugye hexa értékeket kell kiírnia soros porton keresztül. Ezzel nincs is gond, viszont folyamatosan irkál mindenfélét, mintha össze-vissza nyomkodnám a távirányítót, azonban ha kihúzzuk a laptop tápját, akkor abbahagyja.
Az én gépemen ugyanazzal a táppal szintén csinálja, az én tápommal nem. Az ő gépén sem az én tápommal. Na ez mi?
Egyébként az infra nem sima 3 lábú hanem 2 lábú, és egy panelen van rajt, amin még egy kondi, smd ellenállások, és valami ic is van. Egy régi kazettás videomagnóból való a kis panel. Lehet, hogy a táp frekvenciája zavarja az ic-t, vagy a kondit? -
zka67
őstag
válasz
dave0825 #1137 üzenetére
Szia, nyugodtan kipróbálhatod ellenállások nélkül, impulzusüzemben. Attól hogy mások még nem próbáltak így vezérelni egy ledet, még nem jelenti azt, hogy nem működőképes a dolog, és hogy tönkremegy a leded.
Mivel programozás közben bemenetre váltanak a pinek, nem fog kinyitni egyetlen tranzisztor sem, nem fog világítani egyetlen led sem. Egyébként azt látnád most is, hiszen világítanának a ledek...
Egyébként '90-ben csináltam egy led-es reklámtáblát, ami a BNV-n 3. díjat nyert, és a konkurencia jött nézegetni, hogy hol van a tápegység, mert nem hitték el, hogy az egész tábla csak 200W-ot fogyaszt full fényerőn, amikor az övék 4kW-ot. Abban a táblában se voltak ellenállások, sőt egy LS373-as kimenete volt az egyik tranzisztor, és nem ment tönkre egyetlen alkatrész sem. A tábla 8cm vastag volt, egy PC-s táp hajtotta,
amit szintén belepréseltünk, a konkurrencia táblája meg 60 centi vastag volt, tele ventillátorokkal.Azóta az összes reklámtábla így működik, nem pazarolnak el fűtésre feleslegesen energiát.
Ha nem hiszel nekem, attól még kipróbálhatod, bekötöd a ledeket ellenállással, és az egyik ellenállást menet közben rövidre zárod. És nem fog tönkremenni a leded
-
gyapo11
őstag
válasz
dave0825 #1127 üzenetére
A fényerőt a rendes működés közben kell nézned, mert a kitöltési tényező jelentősen meghatározza az effektív fénymennyiséget. Ha ellenállással folyamatosan nyomsz neki áramot, abból semmit nem tudsz megállapítani. Egyszerűen futtasd a programot, és meglátod a fényerőt azon az egy csoporton, amit bekötöttél. A többi hiánya nem okoz gondot.
A 330 Ohmokkal rettentő halvány lesz, mert ha jól emlékszem 1:5 működési arányt mondtál.
A ledek 75 mA-ig hajthatók, de nem állandóan, csakis kapcsolgatva, különben megsülnek. Az ellenállás nélküli próbát szintén nem ajánlom.Hogy mekkora ellenállások kellenek, azt nem tudom, a legkisebbet a 75 mA-hez kell igazítani, de tudni kellene, hogy a két tranyó mekkora feszültséget vesz le ekkora áramnál. A led elvisz 3 V-ot, a két tranyó 1-et, tehát az ellenállásra csak 1 V esik, 75 mA-hez 13 Ohm tartozik. Ha a tranyók nagyon ki tudnak nyitni, és 0-nak vesszük a szaturációs feszültségüket, akkor 26 Ohm a minimális ellenállás ez alá semmiképpen ne menj.
Tehát azt kellene megmérned mondjuk 33 Ohmmal ledenként, hogy amikor az arduino kapcsolgatja üzemszerűen, akkor mekkora feszültség esik a tranyókon, a leden és az ellenálláson, összesen 5 V-nak kell kijönni. Innen már az áram ismert lesz, nagyjából 30-60 mA között lesz. Ekkor nézd meg a fényerőt, és kiderül, hogy elég-e, vagy már túl erős és lehet növelni az ellenállásokat.
-
zka67
őstag
válasz
dave0825 #1129 üzenetére
Akkor nincs mese, vagy elkezdesz kisebb ellenállásokat belerakni, vagy egyszerűen elhagyod az ellenállásokat. Ha nem teszel bele ellenállást, akkor viszont ügyelj arra, hogy mindig működjön az ardu, azaz ne fordulhasson elő olyan eset, hogy valamiért megáll egy leden a program. Én a hétszegmenses órámat használom így, a tranzisztorok megvédik a ledeket, de ha megáll a program, akkor azért túl nagy áramot kaphatnak. Ha így túl nagy lenne a fényerő, akkor azt szoftverből tudod korrigálni, úgy, hogy rövidebb ideig tartod csak bekapcsolva a ledeket. Ha pl. 1 kHz a frissítési frekid, az azt jelenti, hogy a max fényerőhöz 100ms-ig kapcsolod be a ledeket, pl. 10 oszlopnál. Ezt a 100ms-et ha lejebb veszed, csökken a fényerő, de a következő oszlopra csak 100ms múlva lépsz. Remélem érted mit akarok mondani.
-
zka67
őstag
válasz
dave0825 #1127 üzenetére
Szia, hogy próbáltad? Minden led-hez tettél ellenállást és úgy kötötted őket párhuzamosan, vagy csak egy ellenállást tettél összesen? Próbálj ki egy darab led-et egy darab ellenállással 5V-ra kötve. Esetleg impulzus üzemben próbáltad? Ha igen, mérd meg a kitöltési tényezőt. A tranzisztorokkal próbáltad? Ha igen, próbáld ki ardu nélkül, úgy, hogy a megfelelő tranzisztorok lábára a megfelelő szinteket kötöd, hogy úgy hogy világít.
-
bacus
őstag
válasz
dave0825 #1078 üzenetére
4 mA az szerintem kevés, nem fog zavarni tv nézés közben, ez biztos. :-) ha ez még szaggatva is lesz, azaz 1/5 időt világít 4/5 nem, akkor a leolvasáshoz az egyik lábra rá kell még kösd a sötétítő redőnyök vezérlését :-)
Upsz, még tudtam volna szerkeszteni az előző hszt is. Mobil telefonról nem az igaz azért..
-
gyapo11
őstag
válasz
dave0825 #1078 üzenetére
12 V-nál csak fölöslegesen fűtenének az ellenállások. Minél közelebb megyünk a táppal a led feszültségéhez, annál kisebb ellenállások kellenek a ledekkel sorba, és annál kisebb a hőveszteség.
Az áramméréssel igazoltad Ohm és Kirchoff törvényeit.
További teendők majd csak a ledek megérkezése után lesznek. -
bacus
őstag
válasz
dave0825 #1067 üzenetére
lehetne a tápfeszt emelni, miért ragaszkodunk az 5V-hoz? egy 12V-os tápfesz már sokat segit, akkor még egy darab 7805 IC kell, hogy az arduino az 5V-ot kapjon továbbra is.
Egyébként ha nincs beforrasztva (azaz még nincs benne egy csomó munkaóra), az ellenállás nem összeg, pár száz forint...
Ha nem csinálsz nyákot, hova lesz ez a rengeteg ellenállás forrasztva? Rajta lóg a ledek lábán? Zsugorcsövezni fogsz? Nem kis munka.
Én egyszer tettem egy kósza kijelentést, hogy két régi karácsonyfa fűzért, ami jópofa harangok voltak, ledesitek. 32 harang, mindegyik kapott 4 db ledet, amiből kettő kettő felváltva világitott az 50 Hz-es periódusnak megfelelően, illetve minden haranban külön volt két darab negyed wattos ellenállás, hogy elosszam a hő disszipációt.. Napokig csináltam, igaz a munka fele az volt, hogy a régi foglalalot szétszedni, átforrasztani, kivezetni, stb, mert a harang az ugye ahhoz kapcsolódott.
-
gyapo11
őstag
válasz
dave0825 #1067 üzenetére
Egy élmény egy rendes rajzot nézni a paintes kreálmány után.
Tényleg hiányzik a feszültségből, nem lehet, hogy belép a tápmodul áramkorlátja? Ha egyáltalán áramkorlátozós. Vagy mégis a tranyókon marad, máshol nem lehet.
Mindegy, egyelőre az alap infók megvannak, ha meglesznek a ledek, akkor azokat is meg kell mérni, megnézni a fényüket, és úgy lehet továbblépni.Hogy mit kell változtatni, az majd kiderül, ha növelni kell a ledek áramát, akkor változhat más is. A leddel soros ellenállás az első, ha a tranzisztorok kinyitnak eléggé, akkor semmi mást nem kell változtatni. Ha nem nyitnak ki eléggé, akkor még a bázisok körüli ellenállások is változhatnak. Ha pl. föl kell menni a ledekkel 50 mA-re, az tíz lednél már 500 mA, ott már elég jól ki kell nyitni a tranyót. Nem tudom mekkora bétájúak ezek, de mondjuk ha nem túl sok, pl. 50, akkor már 10 mA-t kell benyomni a bázisán, ehhez 430 Ohm kell, de valamennyi feszültség az arduino kimeneten is marad, vagyis még egy kicsit kevesebb. Szóval lehet hogy kell változtatni, de lehet hogy nem, attól függ milyen fényerőt látsz majd, és hogy a megfelelő fényerőhöz milyen led áram kell.
-
tvamos
nagyúr
-
gyapo11
őstag
válasz
dave0825 #1058 üzenetére
Akkor az áram ~3.6 mA. Elég kevésnek tűnik. A tranyók viszont jól teljesítenek, összesen 0.7 V a kettőn, bár ilyen kis áramnál ez sem meglepő.
A következő feladat az lenne, hogy olyan időzítéssel hajtsd meg, ami a kész áramkörben lesz. 1 ms-ig világít, 5 ms-ig nem (ha jól emlékszem). És akkor még rá kellene illeszteni a borítást is, hogy a valós fényerő kiderüljön. Ha kevés, akkor a 330 Ohmokat kell csökkenteni, az elméleti minimum (75 mA led áramra és 1 V veszteséggel a tranyókon) 13 Ohm. Pontosan nehéz megmondani, mert függ a tranyók szaturációs feszültségétől (ami növekvő áramnál nőni fog), és a kék led feszültségétől (ami szintén növekszik az árammal), hogy mennyi fog esni az ellenállásra, de ha tranyók 1 V, led 3 V, akkor 75 mA-hez 13 Ohm kell. -
gyapo11
őstag
válasz
dave0825 #1055 üzenetére
A 20 A-es lyukban csak a 20 A-es állással mér, viszont ha a 20 és 200 mA-ben is 1-es, tehát túlcsordul, akkor vagy rossz a műszer, vagy 200 mA-nél több áram folyik. Viszont ha 5 mA folyik ledenként, akkor több mint 40 lednek kellene lennie, tehát ez nem játszik.
Feszültséget mér? Mert akkor a 330 Ohmokon meg tudnád mérni a leden átfolyó áramot, illetve az ahhoz tartozó feszültséget. -
gyapo11
őstag
válasz
dave0825 #1045 üzenetére
Videóról nehéz fényerőt becsülni. Ha eléteszel egy pauszpapírt, és azon fényt mérsz, az már ad valami infót.
Ha a tápra kötöd a ledet az erősebb lesz, mert nincs alul meg fölül a tranzisztor, ami elvesz a feszültségből. De a legnagyobb fényerőcsökkenés nem is emiatt lesz, hanem a kitöltési tényező miatt, ezért kell működő programmal tesztelni a fényt.
Ha megméred az áramot, akkor már tudjuk a feszültségeket is. De nem lesz egyszeű áramot mérni a működő áramkörön, mert ugye nem folyamatos az áram, hanem 1 ms-os impulzusokban kapja a led. Ezeknek az inpulzusoknak nagy a felharmonikustartalma, ez el tudja vinni a műszereket a málnásba, és totál hülyeséget képesek mutatni, nem beszélve az effektív értékről. Szóval igazából ezt szkóppal lehet mérni.
Vagy talán egyszerűbb, ha írsz erre egy tesztprogramot az arduinoba, ami azt az egy szegmenst kapcsolja be állandóra, ekkor lehet áramot mérni könnyen, majd abban az ütemben kapcsolgassa, mint ahogy majd a teljes programban lesz, ekkor lehet fényt értékelni. És ne a csupasz ledbe nézz bele, mert az sokkal világosabbnak fog tűnni, mint a kész panelben, ahol még levesz a fényből a burkolat. -
gyapo11
őstag
válasz
dave0825 #1041 üzenetére
Csak hogy tisztázzuk a fogalmakat.
Kék led és fehér led nem teljesen azonos feszültséget kér azonos áramhoz. Nagyjából próbálni jó, de azt is a két tranyóval érdemes. Azon nélkül jobban világít, mert az ellenállásra több feszültség esik, és ugye I=U/R.Ha egy 330 Ohmra lenne kötve párhuzamosan 7 led, akkor tényleg halványabb lenne, de nem így van, hanem minden ledre egy ellenállás, és ezért mindegyik azonos fényerővel fog világítani.
Áramot sorban kell mérni, árammérés állásba tenni a multimétert, és sok esetben még a zsinórt is át kell dugni másik lyukba. Nem tudom a tiéd milyen, tegyél föl képet, és akkor látjuk, hogy mit hova.
-
dave0825
őstag
válasz
dave0825 #1044 üzenetére
Nos, kipróbáltam, hát lehetne erősebb a fényereje (mondjuk így videón annyira nem jön át), világít jól, de ennél erősebb, ha egy az egyben rákötök egy fehér ledet ugyanígy 330 ohm-on keresztül a VCC és GND-re. Tehát elvileg a 330 ohm-nál kellene kisebb ellenállás? Vagy mérjem meg, hogy így mekkora áram folyik valahol, és úgy könnyebb számolni? Hol mérjem?
-
tvamos
nagyúr
válasz
dave0825 #1041 üzenetére
Ha mindegyikkel van sorba egy 330R, akkor ugyan annyi aram folyik rajta, tehat ugyan akkora lesz a fenyero.
Szerinem, eleg, ha egyetlen egy LED-del probalod ki eloszor. Csak legyenek ott a tranzisztorok, meg allitsd be, hogy ugyan ugy villogjon, mint ahogy a vegen akarod.
-
tvamos
nagyúr
válasz
dave0825 #1017 üzenetére
Ilyen egyszeru a foto eljaras...
Szenzacios ez a video.
Regen probaltam ilyen foliat is: TES200 a TME-tol. Az is jo. (Meg nekem jo volt az irasvetito folia is...) Ezeket vasalas utan en beraktam a hutobe, ugy konnyebben elvalt a folia a festektol.
-
bacus
őstag
válasz
dave0825 #1017 üzenetére
Nem tudom mit nevezel ismerősi körnek, de ha a megfelelő fórumba feldobod tuti minimális pénzért meg is csinálják. A nyák készités előkészitését -ami egyébként a feladat- pedig te meg tudod csinálni.
Van hivatalos cég is, ahol elküldöd a megfelelő gerber fájlokat és ha kifizetted, jön a nyák. Némelyik egy darabszámnál nem gazdaságos, de mindig szoktam látni hirdetni vaterán is, hogy pár tiz/100 forintért cm2-ként megcsinálják.Én egyszerübb nyákokra a Sprint Layout programot ajánlom, torrent vagy meg is veheted, nem kritikus összeget kérnek. Ez sok mindent nem tud, sok mindent kell kézzel, de nekem 100% megfelel. Nem csinál automatikusan kapcsolási rajzból nyák tervet, de nekem ez sosem kellett.
Ha megvan a nyákterv, onnan már csak egy vasaló kell, némi műnyomó papir, meg pár vegyszer. Első körben biztos nem lesz jó, játszani kell vele, az se jó ha túl forró a vasaló, ha nyomod, ha nem nyomod, ha hideg a vasaló, elején nem lesz jól megpucolva a lemez, mert nem tudod mi a jó, stb. Ezt kell a youtubon ellesni, majd kikisérletezni.
Nekem pl. a nyák tisztitásnál nem jött be a nedves pucolás. Semmilyen surólószer, pedig próbálkoztam sok mindennel. Egyszerű csiszoló szivacs, a praktikerből szárazon, fényesre csiszolni, majd utána acetonos mosás.., ez 100% hibamentességet ad. Nekem..
Sok féle papirt kipróbáltam, nekem most a 100g műnyomó vált be a legjobban ( másnak a 130g-os).
Én a tökéletes eredmény érdekében abbahagytam a vasalást, és beszereztem egy "rendes" lamináló gépet. Olcsóbb mint egy saját vasaló..Ja, és középiskolában én is tanultam a nyák készítést, de nem volt jó semmire, mert a szitázás pl nem egy darabhoz való. A fotózos levilágitós jó volt, de nagyon drága volt a sok vegyszer, és nem lehetett jó eredményt elérni, ott sok a trükk, fotólakk felhordása, lasernyomtató választás, hány réteg kell a jó fedéshez, stb. Az eredmény az volt, hogy 20+ évig nem csináltam nyákot, próba paneles gányolás, vagy "levegőbe" pókgubó készités, pedig nem igen tetszett, csak végszükség esetén, vagy nagyon kevés alkatrész esetén működhet..
-
tvamos
nagyúr
válasz
dave0825 #1017 üzenetére
egyik jó barátom is tanulta még középsuliban, hogy hogy kell NYÁK-ot csinálni
Az nem olyan, ha mas csinalja, mintha magadnak csinalod! Ez a thermal transfer (vasalos) megoldas nagyon egyszeru, en is csinaltam NYAK-ot vele, amikor volt idom ra. Mostmar van egy csomo video a youtube-on, hogy kell csinalni. Megeri kiprobalni!
-
gyapo11
őstag
válasz
dave0825 #998 üzenetére
Jól látom, hogy 30 körüli csoport van? Lehetett volna állandó meghajtást csinálni, 4 db 8 bites soros shiftregiszterrel, amik sorba vannak kötve, és minden kimenet egy csoport ledet hajt meg. Az arduinon 1 clk, 1 data, 1 áítírás a tárolóba kimenet, és a ledek folyamatosan világítanak. Csak elő kell állítani a 4 byte-ot a programmal, ott lett volna egy kis logikázás.
-
gyapo11
őstag
-
bacus
őstag
válasz
dave0825 #1000 üzenetére
dehogy olvasod le hamarabb, ez tévhit. Az analóg órára elég rápillantani, majd becsukhatod a szemed, és akkor is tudod mennyi az idő.
Ami nekem nagyon nem tetszik, az leginkább az, itt sokkal több a mechanikai meló, mint az elektronikai. Illetve az is el van bonyolitva. Persze sokféle képpen megoldható a feladat, de ha már a led itt csak háttérvilágitás szerepét tölti be, akkor simán rendelhettél volna mondjuk 200 db ws2811 rgb ledet, és az egészet 1 darab lábbal vezérelheted. Az összes ledet. Igy lehetett volna szines is. egy darab táp, a legolcsóbb arduino, és vezeték. Semmi, de semmi más kiegészitő áramkör nem kellett volna. A fényerő szabályozható szoftverből.
Ha megy a NYÁK készités, akkor ezeket raktam volna mondjuk 4x4-es NYÁKokra, könnyebb kezelni, kevesebb vezeték. Könnyen bővithető, stb.Az rtc modul helyett én biztos netre raktam volna, wifin, vagy vezetéken. A táp mehetett volna POE-n, igy elég egy darab vezeték, nem kellett volna órát állitani, time.kfki.hu mindig tudja mennyi az idő.
De kell valami ötlet a következő verziójú órára is
-
bacus
őstag
válasz
dave0825 #998 üzenetére
hát órának szar.
a leolvasási időigénye messze az analóg óráknak a legjobb, utána jön a digitális kijelzés, majd valahol ez jön, kicsit megelőzve a bináris kijelzésűeket. Az aztán sok mindenre jó, de időt mérni nem
Viszont bármennyire is nem tetszik mint óra, bizonyára jó design elem lesz a lakásba, mindenki meg fogja csodálni mint a homorú tévéket
Azt is mindenki megcsodálja, de csak azok veszik, akik soha nem néznek sportot. (pl tenisz állitólag teljesen nézhetetlen rajta.., és a snooker is fura, mellesleg hülyén is mutat a falon.)
-
gyapo11
őstag
válasz
dave0825 #994 üzenetére
Szerintem nem ugyanarról beszélünk. Nem a 24 órából mennyi mekkora fényerővel, hanem a max fényerőnél a kitöltési tényező. Tehát 75 mA 1 ms-ig, és kikapcsolva 3 ms-ig. Akkor az átlag 75/4=18.75 mA. Az idők mások is lehetnek, az arány a fontos, és hogy a 24 mA-nél nagyobb áram ne tartson olyan sokáig, hogy hősokkot kapjon a led. Szerintem 10 ms-ig is el lehet menni, van akkora hőtehetetlensége.
-
gyapo11
őstag
válasz
dave0825 #991 üzenetére
24 a tartós áram, 75 a max, amit nem bír folyamatosan. Legyen mondjuk 24 mA-nél 3.3 V feszültség rajta, ekkor 79 mW disszipálódik, és 80 mW a max, tehát ez OK.
Ha viszont megküldöd 75 mA-rel, és még a feszültség is fölmászik mondjuk 3.5 V-ra, az már 262 mW, ettől elfüstölne. Viszont ha az idő 1/3-1/4-ében van bekapcsolva, akkor az átlagteljestmény jó lesz, és úgy világít (majdnem) mintha az 1/3-1/4 árammal menne folyamatosan. -
-
Új hozzászólás Aktív témák
Hirdetés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Beszántaná a marketingért felelős részlegét az Intel
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Battlefield 7
- Konzolokról KULTURÁLT módon
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- PlayStation 5
- Kínai és egyéb olcsó órák topikja
- Fotók, videók mobillal
- További aktív témák...
- Robbanj a jövőbe egy új Ryzen 7 5800X-szel! Kamatmentes rèszletre is!!
- Beszámítás! HP Z2 G4 Tower Workstation számítógép garanciával, hibátlan működéssel
- BESZÁMÍTÁS! MSI Z77 MPOWER Z77 chipset alaplap garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest