-
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
-
qisqaqas
senior tag
Nem kötelező a natív USB. Hasonló cipőben járok én is amúgy Tervezek saját billt.
Googleba: LUFA, VUSB
Mindkettő hasznos tud lenni, ha USB kell. Másik lehetőség a nyers chip. Hozzá csinálni kell PCBt de rendelhetsz is breakout boardot pár dollárért.
CMstorm QF TK eladó || Nem jó a keyboardod? Építs -> http://prohardver.hu/tema/igy_epitsd_a_billentyuzeted/ || Jolla!
-
qisqaqas
senior tag
Hozz létre fürtöket, pl 2 függőleges sorból lesz 1. Piszkosul meg fogja bonyolítani a dolgod ha kézzel drótozol, de IO lábakat spórolsz vele. 80%os billnél 24(18x6) helyett 18(10x8) IO kell majd.
Ha neopixel(vagy hasonló) ledet használsz ahhoz elég lesz 1 pin, mert digitálisan vezérel. Sorba kötöd őket és egyedileg címezhető minden gombod.
Multiplexelést mire érted? Nem teljesen tiszta számomra, hogyan akarod a bill vezérlést megvalósítani.
CMstorm QF TK eladó || Nem jó a keyboardod? Építs -> http://prohardver.hu/tema/igy_epitsd_a_billentyuzeted/ || Jolla!
-
nyunyu
félisten
Marha.
void write(int a)
{
if (a & 1) digitalWrite(A0, HIGH); else digitalWrite(A0, LOW);
if (a & 2) digitalWrite(A1, HIGH); else digitalWrite(A1, LOW);
if (a & 4) digitalWrite(A2, HIGH); else digitalWrite(A2, LOW);
}Bitszintu es opeatort egy &-del irjak.
[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
nyunyu
félisten
Hozzavalo kod egyelore nincs tulbonyolitva:
void setup() {
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(10, INPUT);
}
void rowAddress(int a)
{
if (a & 1) digitalWrite(A0, HIGH); else digitalWrite(A0, LOW);
if (a & 2) digitalWrite(A1, HIGH); else digitalWrite(A1, LOW);
if (a & 4) digitalWrite(A2, HIGH); else digitalWrite(A2, LOW);
}
void columnAddress(int a)
{
if (a & 1) digitalWrite(2, HIGH); else digitalWrite(2, LOW);
if (a & 2) digitalWrite(3, HIGH); else digitalWrite(3, LOW);
if (a & 4) digitalWrite(4, HIGH); else digitalWrite(4, LOW);
if (a & 8) digitalWrite(5, HIGH); else digitalWrite(5, LOW);
if (a & 16) digitalWrite(6, HIGH); else digitalWrite(6, LOW);
}
void loop() {
for (int i=0;i<5;i++)
{
columnAddress(i);
if (digitalRead(10)==HIGH) {
rowAddress(i);
}
}
}[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
Danex
addikt
A kis méretűekből 2 fajta van, mini és a nano. A mini olcsóbb, mivel nincs rajta USB vezérlő és csatlakozó, a nano-n ezek megtalálhatók, így egy picit drágább.
A mini-t előnye, hogy az USB vezérlő hiánya miatt kevesebbet fogyaszt, így az akkumulátorról való üzemeltetés esetén előnyösebb a társával szemben, de programozás tekintetébe, meg kell hozzá még egy eszköz.
-
stopperos
senior tag
Én felpörgetném a Timer2-t maximumra (~31 kHz) és akkor már nem zavaró. Csak ezt a sort kell beírni, mondjuk a void setup() -ba:
TCCR2B = TCCR2B & 0b11111000 | 0x01[ Szerkesztve ]
"What is Linux? I only joined because of the the penguin..." - meanwhile in the linux community. http://9gag.com/gag/arpZGOy
-
gyapo11
őstag
Biztos ki lehet valahogy olvasni, de ott lesz az hex file-ban a temp folderben. Aztán abból hogy lehet forrást generálni, az jó kérdés, kommenteket pl. sehogy, változónevekben se vagyok biztos
menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
nyunyu
félisten
Ugy tunik 75HC238-cal jatszva konzisztensen mukodik a digitalRead(10)==HIGH feltetel, egybol teljesul, ha lenyomom valamelyik gombot, pedig olyankor 3.5V merheto azon a labon.
Nem ertem, miert nem erzekeli LOW-nak az 1.4V-t.
Hello IT! Have you tried turning it off and on again?
-
zka67
őstag
Szia, az alacsony szint 0.8V-ig tart. Használj schottky diódát, pl BAT54A-t, ebben kettő is van, neked megfelelő bekötéssel. A felhúzó ellenállás ne legyen kisebb 10k-nál.
(#2403) dave0825 Szfvár. Ha nincs szkópod, kérj kölcsön valakitől, ha tudsz vagy vegyél egyet
[ Szerkesztve ]
-
tvamos
nagyúr
Nézegesd egy kicsit ezt is, akkor megérted: [link]
(#2403) dave0825 válasza zka67 (#2396) üzenetére
Kell neked egy szkóp! [link] Tudom, sok pénz, de én ez alá nem adnám. Van fasza tokja. Két csatorna, ami szerintem a minimum.[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
gyapo11
őstag
Nem csak a diódán, hanem az ic sem tudja 0-ra húzni, ott is van egy tranyó, aminek a szaturációs feszültsége hozzáadódik a dióda nyitófeszültségéhez.
Ha ennél a kapcsolásnál akarsz maradni, akkor vagy feteket kell rakni a 138 kimeneteire, akkor közel 0 lesz a fesz, a dióda után 0.7, az már jó lesz LOW-nak. A diódát is cserélheted schottkyra vagy germániumra, ha még lehet kapni ilyet, ezeknek kisebb a nyitófeszültsége. Vagy az arduino input pinje elé teszel jelformáló kapcsolást, ami az 1.4-ből közel 0-át csinál. Ez lehet alkalmas ic, vagy két tranyós-zéneres áramkör.
De azt is lehet, hogy nem ezzel a módszerrel olvasod le a gombokat, hanem pl. shiftregiszterrel, és akkor nem kell dióda, csak felhúzó ellenállások és gombok testre, az garantáltan 0 lesz megnyomva.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
őstag