-
GAMEPOD.hu
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
-
tibi-d
tag
válasz mitulabattyi #524 üzenetére
Servusz!
lcd.print(Var, 2 ); feltéve, hogy float, vagy double a változó.
Üdv. -
tibi-d
tag
Sziasztok!
Kéne egy kis segítség. Az lenne a kérdésem, hogy az arduino miképpen vezérli a fizikai I/O-kat. Úgy mint egy PLC, a ciklusok elején, vagy végén frissíti az állapotokat, vagy a programutasítás közvetlenül érvényre juttatja a parancsot a kimenetre. Kérdem azért, mert egy "H-Bridge" borzolja az idegeimet. Addig tökéletesen működik, míg legalább az egyik bemenet stabilan "LOW" szinten van. A probléma akkor keletkezik, amikor mindkét bemenet "HIGH". A váltás pillanatában a híd néhány msec időre zárlatba megy, és ez letöri a tápot, aminek következtében az Arduino "resetelődik". Próbáltam elétenni egy fojtót, de ez PWM vezérlés esetén lerontja a hatásfokot.
A program logikája szerint nem lehetne a két vezérlőjel egyszerre magas.
Ha valakinek van használható ötlete, írja meg, had okuljunk belőle. -
tibi-d
tag
válasz JozsBiker #607 üzenetére
Próbáltam. Már 0.47mF nál jártam, de a kapcsolóütemű tápegység nem éled újra, mire az arduino már resetelődik. A MOSFET-ek 10mOhm csatornaellenállása irdatlan áramot képes áthajtani magán. Nem marad más, a H-híd bemenetein hardveresen kell letiltani a H-H állapotot.
[ Szerkesztve ]
-
tibi-d
tag
Sziasztok!
Minden programomban én úgy oldom meg a nyomógombok prellmentesítését, hogy a menüvezérlést egy önálló szubrutinba hívom meg. Ezt a szubrutint egy (Timer1.attachInterrupt) hívja meg, ami nálam 0.1s alatt fut le 1X.
Ekkor figyelem a nyomógomb változását. Ha változott, beállítok egy változót (PinOld) amit csak akkor írok vissza, ha már végrehajtottam a feladatot, amit a nyomógomb vezérelt, és felengedtem a gombot. Így biztos, hogy csak 1X fogja végrehajtani. Ez az algoritmus bármennyi gomb vezérléséhez használható, ha kell prioritás is felállítható a gombok között. ( és csak 1X kell megírni, utána bármelyik projektben alkalmazható.) -
tibi-d
tag
Szia!
Itt a kód, amit az Arduino.cc "learning" oldaláról ollóztam.State change detection (edge detection)
Often, you don't need to know the state of a digital input all the time,
but you just need to know when the input changes from one state to another.
For example, you want to know when a button goes from OFF to ON. This is called
state change detection, or edge detection.This example shows how to detect when a button or button changes from off to on
and on to off.The circuit:
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground
* LED attached from pin 13 to ground (or use the built-in LED on
most Arduino boards)created 27 Sep 2005
modified 30 Aug 2011
by Tom IgoeThis example code is in the public domain.
http://arduino.cc/en/Tutorial/ButtonStateChange
*/
// this constant won't change:
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to// Variables will change:
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the buttonvoid setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button
// wend from off to on:
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
}
else {
// if the current state is LOW then the button
// wend from on to off:
Serial.println("off");
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;// turns on the LED every four button pushes by
// checking the modulo of the button push counter.
// the modulo function gives you the remainder of
// the division of two numbers:
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}}
Természetesen úgy alakítod, ahogy neked megfelel. -
tibi-d
tag
Az én megoldásom valóban bonyolultabb egy kicsit, de bármilyen menüvezérlési feladatra jó. Ahhoz, hogy ezt megírjam, nekem is fel kellett túrni a netet a lehetséges megoldások után. Annak, hogy magad írod meg a kódot, azon kívül, hogy sikerélményed lesz, meg is tanulod.
-
tibi-d
tag
Sziasztok!
Úgy látom, hogy a nyomógombok prellegésmentesítése ekkora probléma. Bemásolom az általam használt megoldást (kiollózva egy működő alkalmazásból). Ezt a metódust bármilyen menürendszer felépítésére fel lehet használni. Csak a fantázia szab határt.#include <TimerOne.h>
int Pin3 = 3;
int Pin4 = 4;
int Pin5 = 5;
int Pin6 = 6;
int Value;
int Back;
int Up;
int Down;
int Enter;
int Time1;
int Count1;void setup()
{
Timer1; // Timer1 meghívása
Timer1.initialize(100000); // Az időzítés beállítása
Timer1.attachInterrupt( timerIsr ); // A megszakításkor meghívott függvény
pinMode(Pin3, INPUT_PULLUP);
pinMode(Pin4, INPUT_PULLUP);
pinMode(Pin5, INPUT_PULLUP);
pinMode(Pin6, INPUT_PULLUP);
}void timerIsr() // Minden megszakításkor lefut 1 ciklusidőre.
{
Time1 = 1; // Globális változó beállítása, ami bárhol használható
Count1 ++; // 0.5 s alatt körbeszámol
if ( Count1 > 4 ) Count1 = 0;}
void loop()
{
if (Time1 == 1 ) // 0.1 s-ként billentyű beolvasás
{
Back = digitalRead(Pin3);
Up = digitalRead(Pin4);
Down = digitalRead(Pin5);
Enter = digitalRead(Pin6);
Menu();
Time1 = 0; // Csak 1 ciklus idejére figyeli a gombokat
}}
void Menu()
{
if ( Up == 0 && Count1 == 2 )
{
Value ++; // 0.5 s-ként növeli az értéket}
if ( Down == 0 && Count1 == 2 )
{
Value --; // 0.5 s-ként csökkenti az értéket}
}Lehet, hogy csak billentyű beolvasásra kicsit körülményesnek látszik, de amiben én használom ott ez a módszer vált be. (szerteágazóbb funkciók meghívása, stb)
-
tibi-d
tag
válasz soldi3r #2529 üzenetére
Szervusz!
A digitális technikában 4 féle logikai rendszer létezik. Van pozitív tápfeszültségű, és negatív tápfeszültségű. Mindegyikben létezik pozitív, és negatív logika. Az, hogy pozitív, vagy negatív a logika az dönti el, hogy az aktív állapot (1) milyen feszültségi potenciálon valósul meg. Pl. ha a tápfesz 0V-(+5V) akkor pozitív tápfeszültségű a rendszer, és ha a (+5V) jelenti a logikai 1-et, akkor beszélünk pozitív logikáról. Ha a (0V) akkor negatív logikáról. Hogy a helyzet ne legyen ennyire egyszerű, van még a nyugalmi áram fogalma, ami még jobban összezavarja a dolgokat. Ez annyit jelent, hogy nyugalmi helyzetben, amikor a logikai állapot "0"-a, akkor folyik-e áram, vagy sem. De szokták ezt úgy is értelmezni, hogy ha a rendszerben minden hibátlan, akkor folyik a nyugalmi áram, és ha bármi hiba, vagy esemény következik be, akkor szakad meg az áramkör és vált logikai állapotot. Ekkor beszélünk nyugalmi helyzetben zárt, vagy nyitott áramkörről. A fenti dolgokat a tervezés fázisában kell figyelembe venni, az események kiértékelése, feldolgozása során. Volt "szerencsém" negatív tápfeszültségű rendszerben negatív logikával, nyugvóáramú rendszerben működő berendezést üzemeltetni évtizedeken keresztül. Mondanom se kell, hogy a nagy "Szovjetunió" terméke volt. Egyébként előszeretettel szokták keverni ezeket a logikákat egy berendezésen belül is, bár ez nem szép, és szerencsés az üzemeltetőre nézve. Ha a berendezés egy"fekete doboz", akkor teljesen mindegy mi van benne.[ Szerkesztve ]
-
tibi-d
tag
Sziasztok!
Van egy Mega2560 kártyám. A legutoljára feltöltött program fut rajta tökéletesen, de új programot nem tudok rátölteni az USB porton keresztül. Van-e lehetőség az USB port megkerülésével programot feltölteni rá. "Pl. soros porton keresztül."
köszi. -
tibi-d
tag
válasz Daszkalosz19 #3137 üzenetére
Én is sokat vacakoltam a TFT-vel, mire használható állapotba hoztam. Minden kijelzőt érdemes kalibrálni használat előtt, mert a Touch pad nem a kijelzett ábra felett érzékelhet, hanem elcsúsztatva, ami zavaró lehet. Volt olyan kijelző, ahol a fent-lent, bal-jobb is fel volt cserélődve.
-
-
tibi-d
tag
Sziasztok!
Nekem is kellett olyan feladatot megoldani, hogy egy nyomógomb megnyomására csak egyszer hajtson végre egy műveletet. Úgy oldottam meg, hogy egy időzített megszakítás minden 100ms alatt 1X lefut, és ez alatt a ciklus alatt figyeltem a gomb állapotát. Ha eltért az alaphelyzettől, egy segédváltozót 1-be állítok, és elvégeztetem a feladatot(kat), és a segédváltozót csak azután állítom vissza, ha minden végrehajtódott. Addig nem is figyelem a gomb állapotát. Ez akkor hasznos, ha a köztes időben is tudni kell, hogy meg lett nyomva a gomb, és így nincs korlátozva az egyéb feladat végrehajtása sem. Természetesen az időzítés mértéke szabadon állítható. -
tibi-d
tag
válasz Teasüti #3540 üzenetére
Az optikai leválasztásnak az a lényege, hogy a vezérlő-, és vezérelt áramkör semmilyen galvanikus kapcsolatban nincs egymással. Az iparban ez egy rutin eljárás. Több 1000A áramokat vezérelnek processzoros áramkörökkel. Az optocsatoló bemeneti közös pontja csatlakozik az arduino testjére, az optocsatoló kimeneti közös pontja pedig a vezérelt teljesítményfokozat testjére. Az arduino az optokapu LED-jét vezérli, az megvilágít egy fototranzisztort, ami kapcsolja a teljesítmény fokozatot. A két oldal között csak a fény biztosítja a kapcsolatot. Így lehet akár 2-5kV feszültségkülömbségű áramköröket összekapcsolni. A másik módszer az impulzustranszformátor, ez a bonyolultabb módszer.
-
tibi-d
tag
válasz Teasüti #3547 üzenetére
Mert a nagy áram kapcsolgatásakor óhatatlanul lecsökkenhet a feszültség 4,5V alá is, amit te nem veszel észre, de az arduino akár resetelődhet is. A testen keresztül zavarjelek indulhatnak el a processzor felé ( földhurok), ami szintén megzavarhatja a működését. Ha viszont elválasztod a nagy áramú részektől, az arduino minden zavartól mentesen végezheti a dolgát, nem érhet meglepetés. Ezt saját tapasztalatból mondom, mert heteket szenvedtem azzal, hogy néha nem azt csinálta amit kellett volna neki. És nem volt logikus magyarázat a dologra. Ekkor homályosítottak fel, hogy gondoltam-e a fentebb vázolt problémára. Igaz, hogy teljesen át kellett tervezni az áramkört, de azóta nem jelentkeztek "anomáliák". Azóta, ha 1-2A-nál nagyobb áramokat kell kapcsolgatnom viszonylag nagy sebességgel, akkor mindig ezt a módszert alkalmazom. Ha a sebesség nem fontos, maradok a relénél, a megfelelő védelmi megoldásokkal (védődiódák, stb.).
-
tibi-d
tag
válasz Teasüti #3549 üzenetére
Az a kérdés, hogy az 5V-ot miként állítod elő. Ha 230VAC / 5VDC tápról hajtod meg a teljesítményfokozatot, akkor érdemes lehet egy külön 1-2W-os 230VAC/5VDC adapterről meghajtani, és csak a negatív potenciált összekötni. Ha az arduinonál lépne fel gond, a kisteljesítményű táp lekapcsol, "megvédve az arduinot". Ha másképp, akkor bonyolódik a helyzet.
-
tibi-d
tag
Bocs, hogy belekotnyeleskedek a vitába. Egy 12V 1-2A motor vezérlését Arduinoval a legegyszerűbben úgy lehet megoldani, hogy kell venni néhány száz forintért egy H-bridge-t. Közvetlenül ráköthető az Arduinora. Mindenfajta szűrés teljesen felesleges, csak a veszteségeket növeli, meg a hőt. Kísérletileg meg kell határozni, hogy mekkora PWM értéknél indul el a motor, és a vezérlést úgy kell megírni, hogy ha a vezérlőjel "nem 0" akkor a minimális értéktől indítani a vezérlést. Így a motor meg fog indulni, nem tűnik úgy, hogy erőtlen lenne.
-
tibi-d
tag
Ez a módszer bármilyen vezérlővel működik. Ha lenne visszacsatolás a fordulatról, akkor PID szabályzóval még precízebb szabályzás is megvalósítható.
-
tibi-d
tag
válasz gyapo11 #3911 üzenetére
Ez a megállapítás "működött ugyan a szivattyú, de sokkal erőtlenebbnek tűnt" erősen szubjektív, és fizikai paraméterekkel nem igazolható megállapítás. Valószínűleg nem a PWM vezérlés az észrevétel oka. Lehetséges, hogy nem a feladat kívánalmainak megfelelő kialakítás, paraméterezés vezethetett a megállapításra. Egy másik megoldás látszólagos sikere elvonta a figyelmet a probléma részletesebb tanulmányozásáról, megoldás kereséséről. (Megkérdem a többieket, hátha tudnak valami okosat mondani.) "Valószínűleg én is a könnyebb utat választottam volna."
Üdv. -
tibi-d
tag
Sziasztok!
Adott két Mega 2560 panel. Rajtauk egy-egy 3.5"-os TFT (ITDB32S) kijelző. Mindkettőnél elvégzem a touch-pad kalibrálását ugyanazzal a progival, átírom az UTouchCD .h-ban lévő értékeket. Az egyik jól érzékeli a tapintást, a másik, úgy veszi, mintha kb a 1/8 lenne a kijelzőméret. (A bal fölső sarokban leképezi a teljes kijelzőfelületet.)
Mit lehet ilyenkor tenni? -
tibi-d
tag
Van még egy 4.3'-os TFT kijelzőm (ITDB43). Ezen is elvégzem a kalibrálást, de a "Button" tesztelésnél egyáltalán nem reagál az érintésre. Itt mi lehet a gond?
-
tibi-d
tag
Sziasztok!
Belefutottam egy olyan problémába, amit korábban minden gond nélkül tudtam alkalmazni.(Igaz akkor 20X4-es LCD-t használtam.) Egy 3.2"-os TFT-vel kísérletezek (UTFT könyvtárak). Konkrétan a funkcióhívásokra dob hibát a fordító.if (x==y) Menu();
void Menu ()
{
}Erre írja ki az if-el kezdődő sorra, hogy 'Menu' was not declared in this scope".
Ez most az 1.6.13-as IDE hibája lehet?
-
tibi-d
tag
Van egy másik probléma, amit nem tudok mire vélni. Egy kódrészletet a fordító hiba nélkül lefordít, de feltöltésnél "Egy hiba lépett fel a vázlat feltöltése közben" üzenetet kapok, amikor a program tartalmazza a "myButtons.drawButtons();" utasítást is. Ilyenkor a panel kommunikációs LED-jei gyors villogás helyett kb. másodpercenként villannak fel, és kb. 1 perc után küldi az üzenetet.
-
tibi-d
tag
Az lemaradt, hogy a gombok működnek, (ha az előbbi utasítás nélkül töltöm fel a programot) csak nem láthatóak.
-
tibi-d
tag
Ha nem jutok dűlőre, gondoltam arra is, hogy minden egyes képernyőt megrajzolok BMP-ben, és behívom ha szükséges, a billentyűket meg láthatatlanul definiálom. Sajnos még nem találtam olyan rajzolóprogramot, mellyel egyszerűen lehet rajzolni pixeles nézetben. Bár a korábban vázolt esetnek is valami oka kell, hogy legyen.
-
tibi-d
tag
Ahogy írtam tovább a programot, kíváncsiságból aktiváltam a billentyű rajzoló programutasításokat, és láss csodát, hiba nélkül feltöltötte, és működik is. Erre mondják, hogy varjunk rá gombot.
-
tibi-d
tag
Sziasztok
Kéne egy kis segítség. Egy ITDB32S TFT kijelzőre kellene szerkesztenem egy oszlopdiagrammot, aminek a magassága változik egy változó függvényében +/- irányban. Már növelni tudom az oszlop magasságát mindkét irányban, de csökkenteni az úristennek nem akar. Keresgettem a neten, de használható infóra nem leltem. Minden ötlet jól jönne. -
tibi-d
tag
válasz fpeter84 #4506 üzenetére
Szia
A koncepció pontosan ezen az elképzelésen alakult. A problémát az okozta, hogy ezt a diagram rajzoló rutint más blokkok hívják meg, és a keveredést a lokális, globális változók okozták. Egy változót globálissá kellett tenni, hogy a következő meghíváskor is megtartsa az értékét. Lokálisként mindig lenullázta magát. Így már tökéletesen működik. Köszi. -
tibi-d
tag
Belefutottam egy problémába. Egy ITDB32S kijelzővel megspékelt Mega2560 konfiguráció addíg tökéletesen fut, amíg az "ads.readADC_Differential_2_3()" utasítást végre nem kell hajtania. Ha ezt az utasítást kell futtatnia, egyszerűen "lefagy". A kijelző egy része elsötétül, és csak a reset segít. De a Single utasításra is kiakad.
Ha nem jutok dűlőre, megy a kukába az ADS1115. Köszi a tanácsokat. -
tibi-d
tag
Egy korábbi projektben "20X4 LCD-vel kifogástalanúl működött.
-
tibi-d
tag
Én úgy derítettem ki, hogy a nano füsttel működik, hogy a külső tápról működő nano-ra rádugtam az USB kábelt is. Érdekes módon a processzor túlélte, és az addig betöltött program működik, de feltölteni már nem lehet, és a PC sem ismeri fel.
-
tibi-d
tag
Sziasztok!
Kéne egy kis impulzus a következő feladathoz. Egy nyomógomb funkciójának kiterjesztése lenne a feladat. Ha röviden (<1s) nyomom a gombot, akkor egy változó értékét minden gombnyomásra növelje 1-el, ha hosszan (>3s) akkor egy másik változónak adjon új értéket 5s-ig, majd adja vissza a régit. Természetesen ezalatt az idő alatt a többi programrészlet zavartalanul végezze a dolgát.
Köszi az ötleteket.[ Szerkesztve ]
-
tibi-d
tag
válasz DrojDtroll #5547 üzenetére
Szervusz.
Sajnos ez nagyon is valószínű. Én is belefutottam egy olyan problémába, hogy egy megszakítás timer gyakrabban hívta meg a szubrutint mint az (hibás programozás miatt) lefutott volna. Így a program mindenféle hülyeséget csinált, de legfőképpen a végrehajtási ciklusa nőtt meg drasztikusan. Azóta minden megszakítás által meghívott rutinba teszek egy "végrahajtva" feltételt, addig nem engedem újrahívni. -
tibi-d
tag
válasz haxiboy #5658 üzenetére
Szia!
Ez egy vezetékes telefonvonal szimulátor egység. Arra való, hogy ha eltünik a vezetékről a feszültség (elvágják a zsinórt), akkor azt helyettesíti a telefon számára és átkapcsol GSM kommunikációra, úgy, hogy a telefon ebből semmit nem vesz észre. Tehát csak egy átjátszó szerepét tölti be. Minden jelet amit a telefon felől kap, azt továbbküldi. Általában biztonsági rendszerek Contact ID kódjainak továbbítására szokták használni. Ezeket a kódokat tudja értelmezni, és ha kell SMS üzenetet is tud küldeni. Szerintem bonyolult számítógépes kódok küldését nem szabad elvárni a masinától, hacsak nem "faxmodemes" nyelvre le lett fordítva. -
tibi-d
tag
Harminc évvel ezelőtt, mikor a saját erősítőmet építettem, én is mertem nagyot álmodni, de én infravörös távirányításúra építettem. Természetesen a Quad405 végfokra épült. A távirányító egy videoton TV adó-vevő egység volt, az előerősítő TDA1028, TDA1029, TDA1524 triumvirátusra épült. Ebben az időben földi halandó csak álmodhatott a microvezérlőkről. Ma biztos egy WI-FI, Kékfog, mobil kompatibilis erősítőt készítenék. A végerősítőt hagynám meg. A Quad 405 továbbfejlesztett változatát építemén meg. Amatőr utánépítésre szerintem még nem találtak jobbat.
Egy kis kedvcsináló: http://www.bsselektronika.hu/index.php?w=h6twlJTfnj .
A hangfrekvenciás jel feldolgozásához sokkal erősebb vezérlőre van szükség, minimum RPi3 és barátaira. Az audiofilek ezt is szentségtörésnek vennék. Szerintem a legegyszerűbb, és a legjobb a jó öreg sztereó potméter, még ha manuálisan kell is vezérelni. -
tibi-d
tag
válasz #43680768 #5824 üzenetére
Az "áramot is" kifejezésből arra következtetek, hogy egy tápegységnek a feszültségét, és áramkorlátját is arduinoval szeretnéd állítani. Ez azért bonyolult feladat, mert az arduino PWM jelet állít elő a test és a tápja között. Ebből szűrés után lehet "analóg" jelet előállítani. A probléma a referenciaponttal van. A fezsültségszabályzónak a referenciapontja a test, az áramszabályzó referenciapontja a mindenkori kimeneti fezsültség. Ezt illeszteni az arduinóhoz csak galvanikus leválasztás után lehetséges. Más a helyzet, ha csak áramgenerátort akarsz építeni, mert akkor az arduinó referenciapontját lehet kötni a kimenetre, vagy a szabályzó a test felől szabályoz "negatív szabályzás".
-
tibi-d
tag
válasz #43680768 #5828 üzenetére
Találtam egy elgondolkodtató megoldást, érdemes ötletet meríteni belőle.
https://programmingelectronics.com/arduino-controlled-battery-charger/
A segédtápokat mindenképpen lecserélném kapcsolóütemü kivitelre, mert 30V-ból 5-12V-ot így előállítani nagyon veszteséges, és az IC-k erősen melegednének. A hall elemes áramérzékelés nagyon ötletes megoldás.[ Szerkesztve ]
-
tibi-d
tag
Sziasztok!
A kérdésem az lenne, hogy létezik-e olyan mikrokontroller mint a Mega2560, csak gyorsabb (40-80Mhz), és van benne EEPROM is? Amiket találtam az vagy gyorsabb, vagy van benne EEPROM. Olyant, hogy gyors is és nem felejtő memória is van benne, nem találtam. De lehet, hogy rossz helyen kerestem.
Köszi. -
tibi-d
tag
Jelenleg egy Mega2560 vezérel egy műszert. A program futása során keletkeznek adatok, amit el kell tárolni, hogy a következő induláskor azokat visszaolvasva (paraméterek, mérési procedúrák, stb) ott folytathassa a mérést, ahol abbahagyta. Mint mondani szokták, evés közben jön meg az étvágy. Egyre több funkciók kérnek akik használják. Így kezd betelni a programmemória, és kezd lassúlni a rendszer. Ezért gondoltam, hogy egy erősebb hardvert kéne választani, de nem akarnám újraírni az egész programot.
-
tibi-d
tag
válasz Teasüti #6256 üzenetére
Szia!
A válasz a nevében van. A LED az egy dióda, aminek nem lineáris a karakterisztikája, mint egy ellenállásnak. Kb 1.5V-ig kevésbé nő az árama, de néhány század volt növeledésre akár 10X-es áram is kialakulhat. Igy pillanat alatt tönkre lehet tenni. Az áramkorlátozós tápegységnek pont az a lényege, hogy nem engedi elszállni az áramot. A LED látszólagos fényereje sem arányos az árammal. Kb 1/3 áramig fokozatosan nő a fényerő, utána már úgy tűnik, minha nem is nőne ( ami nem igaz, csak nem érzékeljük). -
tibi-d
tag
A félvezetők működéséhez egy kis adalék:
http://tudasbazis.sulinet.hu/hu/szakkepzes/elektronika-elektrotechnika/felvezeto-aramkori-elemek -
tibi-d
tag
válasz Teasüti #6273 üzenetére
A kiüritéses mosfet "gate"-re a "source" kivezetéshez képest adhatsz pozitív és negatív feszültséget is. Az első esetben mégjobban ki fog nyitni, az utóbbiban le fog zárni. Ez le van írva abban a köteg leírásban, amit linkeltem. A P csatornás fetre is igaz ez, csak fordítva.
[ Szerkesztve ]
-
tibi-d
tag
válasz Teasüti #6282 üzenetére
PHM megoldása akkor tökéletes, ha a féklámpa dróton kapja a testet, és a burkolat el van szigetelve. Ha a burkolaton keresztűl kapja a testet, akkor csak a 12V felől lehet vezérelni a lámpát. Ekkor is több tényezőt kell figyelembe venni. Pl. az arduino azért nem működik, mert nem kap tápot, vagy kap ugyan, de a kimenete inaktív. Mind két esetben P csatornás kiüritéses Fet kell, és hozzá olyan segédtáp, ami elő tud állítani 18-20V-ot, a fet zárásához. A vezérlés logikája sem egyszerű. Az arduino tápját úgy kell kialakítani, hogy az "5V" legyen a 12V-al egyenpotenciálon, és a "0V" lebegjen "12-5V" feszültségen. Az arduino kimenetét még így sem lehet közvetlenül a fetre kötni, kell néhány szintillesztő tranzisztor is. Az elmondottakból következik, hogy igen komplikált feladatot találtál ki.