Përmbajtje:

Gjendja me prekje me kapacitet/Ambilight: 8 hapa
Gjendja me prekje me kapacitet/Ambilight: 8 hapa

Video: Gjendja me prekje me kapacitet/Ambilight: 8 hapa

Video: Gjendja me prekje me kapacitet/Ambilight: 8 hapa
Video: Cllevio Masoni - 44 Bespreme (Official Video) 2024, Korrik
Anonim
Gjendje prekëse me kapacitet/Ambilight
Gjendje prekëse me kapacitet/Ambilight

Ky udhëzues është një shkrim i shpejtë i përvojës sime duke krijuar një dritë humori shumëfunksionale. Priten disa njohuri bazë të qarqeve elektronike. Projekti ende nuk ka përfunduar, disa funksione shtesë dhe rregullime duhet të bëhen, por ai tashmë është funksional. Nëse ju jeni entuziastë për këtë udhëzues, unë do ta përditësoj atë. Në zemër të sistemit është një Arduino. Ai do të përpunojë hyrjet nga USB ose secila prej hyrjeve me prekje Capacitive dhe do të kontrollojë dritën RGB. Ky udhëzues ndahet në tre seksione:- Seksioni prekës i kapacitetit mbulon butonat e padukshëm të hyrjes- Seksioni i dritës së humorit mbulon kontrollin e dritës së humorit- Seksioni i ambilight mbulon hyrjen me anë të portit serik, duke përpunuar vlerat RGB të krijuara nga një program kompjuterik për të kontrolluar dritat Refuzimi: Elektronika mund të jetë e rrezikshme, ju vetë jeni përgjegjës për çdo dëm të bërë. Disa kode mblidhen nga forume dhe mund të mos përmbajnë emrin e pronarit të tij. Ju lutem më tregoni dhe unë do të shtoj emrin tuaj.

Hapi 1: Lista e artikujve

Komponentët e mëposhtëm janë të nevojshëm për këtë udhëzues:- Arduino+kabllo USB- Breadboard- Furnizim me energji kompjuteri- Rrip 3x RGB, shikoni dealextreme.com.- 3x TIP120 FET, si https://uk.farnell.com/stmicroelectronics/tip120 /darlington-transistor-në-220/dp/9804005- Një bandë rezistencash (6 * 10 kiloOhm, 3 * 2 megaOhm)-Shumë tela. - Mjetet Prekje kapacitive- Unaza metalike për pllaka- Tela bakri ose pjatë- Diçka për ta ndërtuar atë (si një raft librash:)

Hapi 2: Prekja Capacitive - Bazat & Qarku

Prekja kapacitive - Bazat dhe qarku
Prekja kapacitive - Bazat dhe qarku
Prekja kapacitive - Bazat dhe qarku
Prekja kapacitive - Bazat dhe qarku
Prekja kapacitive - Bazat dhe qarku
Prekja kapacitive - Bazat dhe qarku

Meqenëse po pikturoja raftet e mia të librave, pata mundësinë të 'përmirësoj' edhe ato. Doja të kontrolloja dritën e humorit me anë të prekjes së padukshme. Në fillim, plani im ishte të përdorja një IC të dedikuar për këtë (si Atmel QT240). Por më pas hasa në një faqe që shpjegonte se Arduino mund të imitojë një sensor kapacitiv me softuer. Qarku elektronik mund të gjendet në foto, sensori është një tel bakri i spiraled (vetëm një është treguar për thjeshtësi). Ndjeshmëria kontrollohet nga rezistorët që gjenden para çdo kunj. Ato mund të variojnë nga 1 MegaOhm (prekje absolute) deri në 40 MegaOhm (12-24 inç larg) në varësi të nevojës së prekjes absolute ose afër (përfundova duke përdorur rezistorë 2M Ohm). Eksperimentoni me vlerat derisa sensori të sillet sipas dëshirës. Ideashtë një ide e mirë të instaloni një sipërfaqe përcjellëse (të ndarë nga një copë e hollë jo përçuese) e lidhur me tokën e qarqeve në pjesën e prapme të secilës spirale. Në këtë mënyrë sensorët do të jenë më të qëndrueshëm dhe më pak të ndikuar nga zhurma. Disa më shumë fotografi rreth instalimit të sensorëve në një raft librash. Një prizë është instaluar gjithashtu për lidhje të lehtë me qarkun më vonë. Mbushësi përdoret për të fshehur gjithçka, dhe pas kësaj ato janë gati për t'u lyer.

Hapi 3: Prekja Kapacitive - Kodi & Testimi

Prekja kapacitive - Kodi & Testimi
Prekja kapacitive - Kodi & Testimi

Kodi burimor i mëposhtëm mund të përdoret në Arduino për korrigjim, kontrolloni vlerat me monitorin serial arduino. Gjashtë vlera gjenerohen. E para është një masë e performancës së sistemit. E dyta në të gjashtën janë vlerat e ndiera në çdo kunj. Vlerat duhet të rriten kur i afrohen gishtit. Nëse jo, kontrolloni për lidhje dhe ndërhyrje të këqija. Vlerat e rezistencës mund të ndryshohen për të përcaktuar ndjeshmërinë. Duke zbatuar një strukturë nëse-atëherë e cila aktivizohet në një prag të caktuar logjik, mund të bëhet një ndërrim. Kjo do të përdoret në kodin përfundimtar arduino. Më shumë informacion, sugjerohet të lexoni: https://www.arduino.cc/playground/Main/CapSense--- Arduino CapTouch Debugging Code ---#përfshijnë konfigurimin e pavlefshëm () {CapSense cs_2_3 = CapSense (2, 4); // Rezistenca 10M midis kunjave 2 & 4, kunja 4 është kunj i sensorit, shtoni tel, foilCapSense cs_2_4 = CapSense (2, 7); // Rezistenca 10M midis kunjave 2 & 7, kunja 7 është kunj sensori, shtoni tel, foilCapSense cs_2_5 = CapSense (2, 8); // Rezistenca 10M midis kunjave 2 & 8, kunja 8 është kunj i sensorit, shtoni tel, foilCapSense cs_2_6 = CapSense (2, 12); // Rezistenca 10M midis kunjave 2 & 12, kunja 12 është kunja e sensorit, shtoni tel, foilCapSense cs_2_7 = CapSense (2, 13); // Rezistenca 10M midis kunjave 2 & 13, kunja 13 është kunj i sensorit, shtoni tela, vendosje foilvoid () {Serial.begin (9600);} lak i pavlefshëm () {fillim i gjatë = millis (); total total1 = cs_2_3.capSense (30); total i gjatë2 = cs_2_4.capSense (30); total total3 = cs_2_5.capSense (30); total i gjatë4 = cs_2_6.capSense (30); total total5 = cs_2_7.capSense (30); Serial.print (millis () - fillimi); // kontrolloni performancën në milisekonda Serial.print ("\ t"); // karakteri i skedës për korrigjimin e distancës së erës Serial.print (total1); // dalja e sensorit të printimit 1 Serial.print ("\ t"); Serial.print (total2); // dalja e sensorit të printimit 2 Serial.print ("\ t"); Serial.print (total3); // dalja e sensorit të printimit 3 Serial.print ("\ t"); Serial.print (total4); // dalja e sensorit të printimit 4 Serial.print ("\ t"); Serial.println (gjithsej5); // dalja e sensorit të printimit 5 vonesë (10); // vonesë arbitrare për të kufizuar të dhënat në portin serik} --- FUND ---

Hapi 4: Drita e humorit - Bazat & Qarku

Mood Light - Bazat & Qarku
Mood Light - Bazat & Qarku
Mood Light - Bazat & Qarku
Mood Light - Bazat & Qarku
Mood Light - Bazat & Qarku
Mood Light - Bazat & Qarku

Tani është koha për të ndërtuar pjesën dalëse të sistemit. Kunjat PWM të arduino do të përdoren për të kontrolluar çdo ngjyrë. PWM do të thotë Modulim i Gjerësisë së Pulsit, duke ndezur dhe fikur një kunj shumë shpejt leds do të zbehen nga 0 në 255. Çdo pin do të amplifikohet nga një FET. Tani për tani, sistemi ka vetëm një kanal për ngjyrë, që do të thotë se të gjitha shiritat RGB do të kontrollohen menjëherë dhe nevojiten 3 kunja PWM (një për çdo ngjyrë). Në të ardhmen dua të jem në gjendje të kontrolloj secilën prej katër shiritave të mi RGB. Kjo do të thotë 4*3 = 12 kunja PWM (dhe ndoshta një Arduino Mega). Në rregull, koha për disa skema! Kjo (shiko figurën) është një përfaqësim bazë i qarkut (do të bëhet më i bukur së shpejti). Përfshihen edhe sensorët kapacitivë (pjesa jeshile). Në thelb ka tre përbërës që duhet shpjeguar:- FETKy është përforcuesi për të cilin po flisja. Ajo ka një Portë, një Burim dhe një Kullues. Ai përforcon shqisat një rrymë të vogël në portë (e lidhur me Arduino) dhe hap rrugën për shiritin RGB që drejtohet në 12 volt. Burimi duhet të jetë në +12V, kullimi në GND (Ground). Kontrolloni fletën e specifikimeve të FET -it tuaj për përcaktimin e saktë. Çdo kanal RGB duhet të pozicionohet para FET -it të vet. Në këtë kuptim, ai po vepron si një ndërprerës i kontrolluar nga Arduino.- Rrip RGBKjo shirit RGB 12 volt është i tipit të zakonshëm të anodës (+). Do të thotë, se tela e zakonshme duhet të lidhet me +12V dhe rryma të fundoset përmes secilit prej kanaleve të ngjyrave të veçanta. Shiriti ka përfshirë rezistorë, kështu që mos u shqetësoni për këtë!- RezistorëTre rezistenca 10k do të sigurohen që FET të mos ndizet kur nuk supozohet të ndizen. Tre të tjerë do të kufizojnë rrymën maksimale që FET do të kullojë. Tre rezistencat kryesore janë tashmë në shiritin RGB. Kam ngjitur kabllot USB në shiritat RGB, kështu që unë mund t'i lidh ato në mënyrë modulare me lehtësi. Priza nga një qendër e vjetër janë vendosur në tryezën time të bukës. Përdorni një furnizim me energji kompjuteri të vjetër për lëng, 12V për fuqizimin e shiritit RGB dhe përfundimisht 5V për qarkun nëse dëshironi që ai të funksionojë pa kabllon USB.

Hapi 5: Mood Light - Kodi & Kontrolli

Drita e humorit kontrollohet nga sensorët kapacitivë. Tani për tani, unë programova vetëm sensorët 2 dhe 3 për ndryshimin e ngjyrës. Sensorët e tjerë nuk kanë funksion ende. Këtu është kodi: --- Arduino Mood Control Kodi ---#përfshijë konvertimin boolean const = true; const longoutout = 10000; // Deklarata e sensorit kapacitivCapSense In1 = CapSense (2, 4); // Rezistenca 2M midis kunjave 4 & 2, kunja 2 është kunj sensori, shtoni tel, foilCapSense In2 = CapSense (2, 7); // Rezistenca 2M midis kunjave 4 & 6, kunja 6 është kunj sensori, shtoni tel, foilCapSense In3 = CapSense (2, 8); // Rezistenca 2M midis kunjave 4 & 8, kunja 8 është kunj i sensorit, shtoni tel, foilCapSense In4 = CapSense (2, 12); // Rezistenca 2M midis kunjave 4 & 8, kunja 8 është kunj sensori, shtoni tel, foilCapSense In5 = CapSense (2, 13); // Rezistenca 2M midis kunjave 4 & 8, kunja 8 është kunj sensori, shtoni tel, petë // PWM Deklaratat e pinit PinR1 = 3; int PinG1 = 5; int PinB1 = 6; // Ndryshore të tjeraint Color1 = 128; // filloni me një ngjyrë të kuqe si ngjyra Ndriçimi1 = 255; // filloni me shkëlqimin e plotë të RedValue1, GreenValue1, BlueValue1; // Komponentët RGBvoid setup () {// caktoni vlerat e afatit të sensorit In1.set_CS_AutocaL_Millis (timeout); In2.set_CS_AutocaL_Millis (timeout); In3.set_CS_AutocaL_Millis (timeout); In4.set_CS_AutocaL_Millis (timeout); In5.set_CS_AutocaL_Millis (timeout);} loop void () {start i gjatë = millis (); total total1 = In1.capSense (30); total total2 = In2.capSense (30); total total3 = In3.capSense (30); total total4 = In4.capSense (30); total i gjatë5 = In5.capSense (30); nëse (gjithsej 2> 150) {Ngjyra1 ++; // shtoni ngjyrën nëse (Ngjyra1> 255) {// Ngjyra1 = 0; }} tjetër nëse (total3> 200) {Ngjyra1--; // zvogëloni ngjyrën nëse (Ngjyra1 <0) {// Ngjyra1 = 255; } // shndërroni ngjyrën në rgb hueToRGB (Color1, Brightness1); // shkruani ngjyra në kunjat PWM analogWrite (PinR1, RedValue1); analogWrite (PinG1, GreenValue1); analogWrite (PinB1, BlueValue1);} // funksion për të kthyer një ngjyrë në përbërësit e saj të Kuq, të Gjelbër dhe Blu.void hueToRGB (int hue, int brightness) {unsigned int scaledHue = (nuanca * 6); segmenti int i panënshkruar = scaledHue / 256; // segmenti 0 deri në 5 rreth rrotës së ngjyrave unsigned int segmentOffset = scaledHue - (segmenti * 256); // pozicioni brenda segmentit i panënshkruar int kompliment = 0; pa shenjë int prev = (shkëlqimi * (255 - segmentOffset)) / 256; i panënshkruar int tjetër = (shkëlqimi * segmentOffset) / 256; nëse (përmbys) {shkëlqimi = 255-shkëlqim; kompliment = 255; prev = 255-prev; tjetra = 255-tjetra; } kaloni (segmenti) {rasti 0: // e kuqe RedValue1 = shkëlqimi; GreenValue1 = tjetër; BlueValue1 = kompliment; pushim; rasti 1: // e verdhë RedValue1 = e mëparshme; GreenValue1 = shkëlqimi; BlueValue1 = kompliment; pushim; rasti 2: // jeshile RedValue1 = kompliment; GreenValue1 = shkëlqimi; BlueValue1 = tjetër; pushim; rasti 3: // cian RedValue1 = kompliment; GreenValue1 = e mëparshme; BlueValue1 = shkëlqimi; pushim; rasti 4: // blu RedValue1 = tjetër; GreenValue1 = kompliment; BlueValue1 = shkëlqimi; pushim; rast 5: // magenta default: RedValue1 = shkëlqimi; GreenValue1 = kompliment; BlueValue1 = e mëparshme; pushim; }} --- FUND ---

Hapi 6: Ambi Light - Arduino Side

Sigurisht, do të ishte krejtësisht mirë të jeni në gjendje të kontrolloni dritën e humorit nga kompjuteri juaj. Për shembull, për të krijuar një amboight ose një disko të kontrolluar me zë. Ky seksion fokusohet në pjesën ambilight, në të ardhmen do të shtoj më shumë funksionalitet. Epo, nuk ka qark shtesë sepse të gjitha janë të disponueshme në Arduino. Ajo që ne do të përdorim janë aftësitë e komunikimit serik dhe disa softuerë "Përpunimi 1.0". Lidheni arduinon tuaj në kompjuterin tuaj me një kabllo USB (nëse po ngarkonit skica në të, tashmë është). Për arduino, duhet të shtoni një kod shtesë për komunikimin serik. Kodi do të kalojë në modalitetin e dëgjimit, duke i kthyer sensorët kapacitiv për sa kohë që merr vlera RGB nga kompjuteri. Pastaj vendos vlerat RGB në kunjat PWM. Ky është kodi im përfundimtar tani për tani, kontrolloni për ndryshimet vetë: --- Arduino Ambilight Code ---#përfshini konvertimin boolean = të vërtetë; konstatimin e gjatë të konstantit = 10000; gjatë fillimin = 0; char val; // Deklarata e sensorit kapacitivCapSense In1 = CapSense (2, 4); // Rezistenca 2M midis kunjave 4 & 2, kunja 2 është kunj sensori, shtoni tel, foilCapSense In2 = CapSense (2, 7); // Rezistenca 2M midis kunjave 4 & 6, kunja 6 është kunj sensori, shtoni tel, foilCapSense In3 = CapSense (2, 8); // Rezistenca 2M midis kunjave 4 & 8, kunja 8 është kunj i sensorit, shtoni tel, foilCapSense In4 = CapSense (2, 12); // Rezistenca 2M midis kunjave 4 & 8, kunja 8 është kunj sensori, shtoni tel, foilCapSense In5 = CapSense (2, 13); // Rezistenca 2M midis kunjave 4 & 8, kunja 8 është kunj sensori, shtoni tel, petë // PWM Deklaratat e pinit PinR1 = 3; int PinG1 = 5; int PinB1 = 6; // Ndryshore të tjeraint Color1 = 128; // filloni me një ngjyrë të kuqe si ngjyra Ndriçimi1 = 255; // filloni me shkëlqimin e plotë të RedValue1, GreenValue1, BlueValue1; // Konfigurimi i komponentëve RGB () {Serial.begin (9600); // filloni komunikimin serik // vendosni vlerat e afatit të sensorit In1.set_CS_AutocaL_Millis (timeout); In2.set_CS_AutocaL_Millis (timeout); In3.set_CS_AutocaL_Millis (timeout); In4.set_CS_AutocaL_Millis (timeout); In5.set_CS_AutocaL_Millis (timeout);} loop void () {start i gjatë = millis (); total total1 = In1.capSense (30); total total2 = In2.capSense (30); total total3 = In3.capSense (30); total total4 = In4.capSense (30); total i gjatë5 = In5.capSense (30); if (Serial.disponueshëm ()) {// Nëse të dhënat janë të disponueshme për tu lexuar, val = Serial.read (); // lexojeni dhe ruajeni në val commStart = millis (); nëse (val == 'S') {// Nëse fillon marrja e shkronjës, ndërsa (! Serial.available ()) {} // Prisni deri në vlerën tjetër. RedValue1 = Serial.read (); // Pasi të jetë në dispozicion, caktoni. ndërsa (! Serial. i disponueshëm ()) {} // Njësoj si më sipër. GreenValue1 = Serial.read (); ndërsa (! Serial.disponueshëm ()) {} BlueValue1 = Serial.lexim (); } Serial.print (RedValue1); Serial.print (GreenValue1); Serial.println (BlueValue1); } else if ((millis () - commStart)> 1000) {if (total2> 150) {Color1 ++; // shtoni ngjyrën nëse (Ngjyra1> 255) {// Ngjyra1 = 0; }} tjetër nëse (total3> 200) {Ngjyra1--; // zvogëloni ngjyrën nëse (Ngjyra1 <0) {// Ngjyra1 = 255; }} hueToRGB (Ngjyra1, Shkëlqimi1); } analogWrite (PinR1, RedValue1); analogWrite (PinG1, GreenValue1); analogWrite (PinB1, BlueValue1);} // funksion për të kthyer një ngjyrë në përbërësit e saj të Kuq, të Gjelbër dhe Blu.void hueToRGB (int hue, int brightness) {unsigned int scaledHue = (nuanca * 6); segmenti int pa shenjë = scaledHue / 256; // segmenti 0 deri në 5 rreth rrotës së ngjyrave unsigned int segmentOffset = scaledHue - (segmenti * 256); // pozicioni brenda segmentit i panënshkruar int kompliment = 0; pa shenjë int prev = (shkëlqimi * (255 - segmentOffset)) / 256; i panënshkruar int tjetër = (shkëlqimi * segmentOffset) / 256; nëse (përmbys) {shkëlqimi = 255-shkëlqim; kompliment = 255; para = 255-paraprak; tjetra = 255-tjetra; } kaloni (segmenti) {rasti 0: // e kuqe RedValue1 = shkëlqimi; GreenValue1 = tjetër; BlueValue1 = kompliment; pushim; rasti 1: // e verdhë RedValue1 = e mëparshme; GreenValue1 = shkëlqimi; BlueValue1 = kompliment; pushim; rasti 2: // jeshile RedValue1 = kompliment; GreenValue1 = shkëlqimi; BlueValue1 = tjetër; pushim; rasti 3: // cian RedValue1 = kompliment; GreenValue1 = e mëparshme; BlueValue1 = shkëlqimi; pushim; rasti 4: // blu RedValue1 = tjetër; GreenValue1 = kompliment; BlueValue1 = shkëlqimi; pushim; rasti 5: // magenta default: RedValue1 = shkëlqimi; GreenValue1 = kompliment; BlueValue1 = e mëparshme; pushim; }} --- FUND ---

Hapi 7: Ambi Light - Ana e kompjuterit

Në anën e kompjuterit ekzekutohet një skicë Processing 1.0, shihni processing.org. Ky program i vogël (disi i çrregullt) llogarit ngjyrën mesatare të ekranit në çdo moment dhe e dërgon atë në portën serike. Isshtë shumë themelore deri më tani dhe mund të përdorë pak rregullime, por funksionon shumë mirë! Unë do ta azhurnoj në të ardhmen për shumë shirita të veçantë RGB dhe seksione të ekranit. Ju gjithashtu mund ta bëni këtë vetë, gjuha është mjaft e drejtpërdrejtë. Këtu është kodi: --- Përpunimi 1.0 Kodi --- importimi i përpunimit. Serial.*; Import java.awt. AWTException; import java.awt. Robot; import java.awt. Rectangle; import java.awt.image. BufferedImage; PImage screenShot; Seriali myPort; statike publike e pavlefshme kryesore (String args ) {PApplet.main (New String {"--present", "shooter"});} void setup () {size (100, 100); // madhësia (ekrani. gjerësia, ekrani. lartësia); // Shtypni një listë të porteve serike, për qëllime korrigjimi: println (Serial.list ()); // Unë e di që porta e parë në listën serike në mac tim // është gjithmonë përshtatësi im FTDI, kështu që unë hap Serial.list () [0]. // Në makinat Windows, kjo në përgjithësi hap COM1. // Hapni çfarëdo porti që përdorni. Emri i portit të vargut = Lista seriale () [0]; myPort = Serial i ri (ky, emri i portit, 9600);} tërheqje e pavlefshme () {// imazh (pamja e ekranit, 0, 0, gjerësia, lartësia); screenShot = getScreen (); ngjyra kleur = ngjyra (0, 0, 0); kleur = ngjyra (screenShot); //myPort.write(int(red(kleur))++ ','+int (jeshile (kleur))+','+int (blu (kleur))+13); //myPort.write(int(red(kleur))); //myPort.write (','); //myPort.write(int(green(kleur))); //myPort.write (','); //myPort.write(int(blue(kleur))); //myPort.write(13); mbush (kleur); rect (30, 20, 55, 55);} ngjyra e ngjyrës (imazhi i imazhit) {int cols = (img. gjerësia); rreshtat int = (img. lartësia); int dimension = (img. gjerësia*img. lartësia); int r = 0; int g = 0; int b = 0; img.loadPixels (); // Ga elke pixel langs (dimension) për (int i = 0; i <(dimension/2); i ++) {r = r+((img.pixels >> 16) & 0xFF); g = g + ((img. piksele >> 8) & 0xFF); b = b + (img.pixels & 0xFF);} int mean_r = r/(dimension/2); int mean_g = g/(dimension/2); int mean_b = b/(dimension/2); ngjyra mean_clr = ngjyra (mean_r, mean_g, mean_b); myPort.write ('S'); myPort.write (mean_r); myPort.write (mean_g); myPort.write (mean_b); return (mean_clr);} PImage getScreen () {GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment (); GraphicsDevice gs = ge.getScreenDevices (); Modaliteti DisplayMode = gs [0].getDisplayMode (); Kufijtë e drejtkëndëshit = Drejtkëndëshi i ri (0, 0, mode.getWidth (), mode.getHeight ()); BufferedImage desktop = i ri BufferedImage (mode.getWidth (), mode.getHeight (), BufferedImage. TYPE_INT_RGB); provo {desktop = Robot i ri (gs [0]). createScreenCapture (kufijtë); } catch (AWTException e) {System.err.println ("Kapja e ekranit dështoi."); } kthimi (PImage i ri (desktop));} --- FUND ---

Hapi 8: Rezultati

Rezultati
Rezultati
Rezultati
Rezultati

Dhe ky është rezultati, në fakt është në pjesën e poshtme të shtratit tim. Ende më duhet të zëvendësoj leckën, do të shpërndajë më shumë dritën. Më shumë fotografi për këtë së shpejti. Shpresoj se ju pëlqen kjo e udhëzueshme dhe gjithashtu shpresoj se është një bazë për krijimtarinë tuaj. Për shkak të kufizimeve kohore e shkrova shumë shpejt. Ju mund të keni nevojë të keni disa njohuri bazë të arduino/elektronikës për ta kuptuar atë, por kam ndërmend ta përditësoj në të ardhmen nëse pritet mirë.

Recommended: