Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   431 / 863
(#) vyky hozzászólása Feb 27, 2018 /
 
Sziasztok. Volna egy hatalmas kérésem. Tudom nagyon amatőr ,de egyszerűen,nem bírom megérteni a shiftelést. Valaki megtenné,hogy kommetezve írna egy példa programot nekem a ledek kapcsolásához?
Ui.: 595 -ös kapcsolással,kellene a magyarázat .
köszönöm előre is.
A hozzászólás módosítva: Feb 27, 2018
(#) vargham válasza vyky hozzászólására (») Feb 27, 2018 /
 
Meddig érted, és mit nem értesz benne? Milyen doksit néztél, és mi nem volt belőle világos?
(#) proba válasza vyky hozzászólására (») Feb 27, 2018 / 1
 
"A" variáció elektronika része:
az ic legy léptető regiszter, soros beírással, párhuzamos kijelzéssel, meg némi engedélyező kiíró lábbal.
Képzelj el egy üveg csövet amit letakarsz. vannak piros meg fekete golyók ( 1 és 0 állapot) ha a cső elejéhez teszed pl a piros golyót ( az adatlábat magasra kapcsolod), utána betolod a csőbe ( clock lábra adsz egy impulzust) utána a piros golyó helyére beteszed a következő tetszőleges golyót ( data 0 vagy 1) betolod ( clk) ezt addig ismétled míg teli nem lesz a cső ( 8*) Mikor kész vagy leveszed a takarót a csőről ( out enable, vagy átírás.. az icktől függően) És már látsz is egy oszlopot.
Hogy lesz ebből egy kép?
Képzeld el ezt a csövet a feltöltéssel szinkronban mindig eggyel arrébb teszed. ( elektromosan ez az oszlopkijelölés léptetése.)
"B" variáció: a léptető regiszter adja az oszlop kijelölést:
A csövet telirakod fekete golyókkal (0 állapot), utána egy átlátszót teszel a bemenetre ( 1 állapot), majd folytatod ismét fekete golyókal. A clock hatására az üveg golyó mindíg egyel előrébb lép. Mivel csak az átlátszó, a mögötte lévő függőleges képsor csak rajta keresztül látható, így ha azt változtatod a léptetés ütemében kapsz egy összefüggő képet.
"C" változat a kettő keveréke.
Amit nehéz benne megérteni, egyetlen pillanatban nem a teljes kép látszódik a kijelzőn, csak egy oszlop , amit folyamatosan "frissíteni" kell.
Ha az elvét megérted, csak utána van értelme a program magyarázatnak.
Magát a multiplexelést érted? Ha igen akkor a léptető regiszter csak annyit csinál, egyik /mindkét sor/oszlop jelet egy vezetékes adatátvitelre alakítja át.
(#) vyky válasza vargham hozzászólására (») Feb 27, 2018 /
 
Szia. A helyzet ,hogy sok neten lévő példa programot megnéztem még az arduino.cc- is,de egyszerűen nem értem hogy van a léptetés. Sajnos angolul,nem tudok ez elég nagy hátrány tudom,de ez van.
Szóval Arduino.cc
Nézegettem,de nem értem.A shiftOut példát nézem,és nem értem
(#) vyky válasza proba hozzászólására (») Feb 27, 2018 /
 
Szia. Köszönöm,az elvi részét értem,utána olvastam. Csak a kivitelezés nem megy
De próbálom,minél előbb értelmezni
(#) kapu48 válasza vyky hozzászólására (») Feb 27, 2018 /
 
Pedig roppant egyszerűen leforditjaneked a Google fordító:
Bővebben: Link

Igy már lehet, hogy megérted!
A hozzászólás módosítva: Feb 27, 2018
(#) vargham válasza vyky hozzászólására (») Feb 27, 2018 /
 
Shift register interactive tutorial.
A tanulás, főleg ezen a területen, elég nehéz angol nélkül.
(#) vargham válasza kapu48 hozzászólására (») Feb 27, 2018 /
 
Idézet:
„Igy már lehet, hogy megérted!”

"A második pólus, az óracsap, amelyet a bitek között rajzol."
Szerintem rosszabb...
(#) kapu48 válasza vargham hozzászólására (») Feb 27, 2018 /
 
Erről kár vitát nyitni! Ez van!
(#) vyky válasza kapu48 hozzászólására (») Feb 27, 2018 /
 
Szia. Köszönöm,nézem,és megpróbálom értelmezni
(#) Kera_Will válasza vyky hozzászólására (») Feb 27, 2018 /
 
Digitális technika alapjaival se árt tisztába lenni.

Jó az arduino meg teli net ezzel, azzal erről, arról írnak, de ha valami ismeretlen akkor nehéz megérteni.
Hátha ez a pár oldal figyelmes átolvasása és értelmezése segít a megértés felé vezető úton.

Digitális alapáramkörök

digitális hálózatok szekvenciális hálózatok
Lehet hogy sok(k) ... igen elsőre hírtelen biztos az.
De mindenki aki elektronikával digitális áramkörökkel foglalkozik valamikor itt indul el. Türelem meg hozza a gyümölcsét!
(#) vyky válasza Kera_Will hozzászólására (») Feb 27, 2018 /
 
Szia.Hálás köszönt ,tanulmányozom
(#) proba válasza vyky hozzászólására (») Feb 27, 2018 /
 
A 60 nap alatt arduino, mint távir oldali tanfolyam is hasznos lehet. Ott az egyik példa magyar kommentekkel megvan.
(#) kapu48 válasza vyky hozzászólására (») Feb 28, 2018 /
 
Példa TTL D tárolók alkalmazására:
DIGITÁLIS TECHNIKA INTERAKTÍV PÉLDATÁR
81.oldal: 3 bites jobbra léptető regisztert. 10.15. ábra
(#) kapu48 válasza kapu48 hozzászólására (») Feb 28, 2018 /
 
(#) vyky válasza kapu48 hozzászólására (») Feb 28, 2018 /
 
Köszönöm szépen.
Nagy nehezen felfogtam,hogy
  1. for (int thisPin = 0; thisPin < pinCount; thisPin++) {
  2.     // turn the pin on:
  3.     digitalWrite(ledPins[thisPin], HIGH);

Ezzel, a legkisebb pintől tudom felfele kapcsoltatni a ledeket egyesével.
  1. for (int thisPin = pinCount - 1; thisPin >= -1; thisPin--) {
  2.     // turn the pin on:
  3.     digitalWrite(ledPins[thisPin], LOW);

Ezzel meg le.De hogy van ez fordítva? Mi az a kód ami a legmagasabb pintől lefele haladva kapcsolgatja be?
  1. for (int thisPin = pinCount - 1; thisPin >= -1; thisPin--) {
  2.     // turn the pin on:
  3.     digitalWrite(ledPins[thisPin], HIGH);

Ez lenne az?
(#) vyky hozzászólása Feb 28, 2018 /
 
Ez már majdnem azt csinálja amit szeretnék,de valamiért nem mindig veszi figyelembe,hogy a gomb meg van nyomva.Ez mitől lehet?
  1. int ledpins[] ={5,6,7,8,9,10,11,12};
  2. int fel =2;
  3. int le = 3;
  4. void setup()
  5. {
  6.  pinMode(fel,INPUT_PULLUP);
  7.  pinMode(le,INPUT_PULLUP);
  8.   int index;
  9.   for(index= 0; index <=7;  index++)
  10.   {
  11.     pinMode(ledpins[index],OUTPUT);
  12.   }
  13. }
  14. void loop ()
  15. {
  16.  int index;
  17.   int delayTime = 500; // milliseconds to pause between LEDs
  18.                        // make this smaller for faster switching
  19.  
  20.   // Turn all the LEDs on:
  21.  
  22.   // This for() loop will step index from 0 to 7
  23.   // (putting "++" after a variable means add one to it)
  24.   // and will then use digitalWrite() to turn that LED on.
  25. if (digitalRead(le) == LOW){
  26.   for(index = 0; index <= 7; index++)
  27.   {
  28.     digitalWrite(ledpins[index], HIGH);
  29.     delay(delayTime);                
  30.   }                                  
  31. }
  32. else if(digitalRead(fel) == LOW){
  33.   for(index = 7; index >= 0; index--)
  34.   {
  35.     digitalWrite(ledpins[index], LOW);
  36.     delay(delayTime);
  37.   }
  38. }
  39. else {
  40.   digitalWrite(ledpins[index], LOW);  
  41. }
  42.  
  43.  
  44.  
  45. if (digitalRead(fel)==LOW){
  46.   for(index = 7; index >= 0; index--)
  47.   {
  48.     digitalWrite(ledpins[index], HIGH);
  49.     delay(delayTime);
  50.   }}
  51.   else if(digitalRead(le)==LOW){
  52.     for(index =0;index<=7;index++)
  53.     {digitalWrite(ledpins[index], LOW);
  54.     delay(delayTime);
  55.     }}
  56.     else{
  57.       digitalWrite(ledpins[index],LOW);
  58.     }
  59. }
(#) kapu48 válasza vyky hozzászólására (») Feb 28, 2018 /
 
Vedd kisebbre a várakozást.
int delayTime = 200; //?
(#) vyky válasza kapu48 hozzászólására (») Feb 28, 2018 /
 
Jogos ,megnézem úgy Igen sokkal jobb,köszönöm
Bár még így is van egy kis anomália,de azt talán megfejtem.
Valamiért az 5-ös lábon lévő led felkapcsol és amikor az összes led világít ,akkor fogja magát és elalszik :S
(#) kapu48 válasza vyky hozzászólására (») Feb 28, 2018 /
 
Esetleg már nem bírja az 8 szoros összegződő áramfelvételt meghajtani az MCU?
Vedd kissebre a LEDek meghajtó áramát.

Ha próbapanelt használsz? Rossz az érintkezés?
(#) vyky válasza kapu48 hozzászólására (») Feb 28, 2018 /
 
Próba panelt használok,eddig bírta a MCU valamit elírhattam De megnézem a kontakt hibát is
(#) Bell válasza vyky hozzászólására (») Feb 28, 2018 /
 
Érdemes lenne megnézni a megszakítást. Ott nincsenek időzítési gondok. Bővebben: Link
(#) vyky válasza Bell hozzászólására (») Feb 28, 2018 /
 
Szia. Köszi nézem
(#) kitartás hozzászólása Márc 3, 2018 /
 
Üdvözlet!
Tudtok valami linux alatt is működő az arduino ide nél barátságosabb felületet? Persze jó lenne ha az aruinoban megszokott könyvtárakat kezelné, a régebben elkövetett kódjaimat tudná fordítani.
Próbáltam az eclipse alapú sloeber t, de az még a saját példaprogramjait sem hajlandó hibajelzések nélkül fordítani.
(#) vargham válasza kitartás hozzászólására (») Márc 3, 2018 / 1
 
Visual Studio Code
(#) kitartás válasza vargham hozzászólására (») Márc 3, 2018 /
 
Köszi! Kipróbálom.
(#) vargham válasza kitartás hozzászólására (») Márc 3, 2018 /
 
Van hozzá Arduino plugin.
(#) gygy91 hozzászólása Márc 3, 2018 /
 
Sziasztok!

Ökölvíváshoz szeretnék készíteni egy gépet amin X mennyiségű (legalább 3) ütőpont volna, amik véletlen szerű sorrendben villannának fel, és addig világítva maradnának amíg meg nem ütjük azt.
Nem kéne se időt mérnie, sem ütésszámot, a lehető legegyszerűbbre szeretném megcsinálni.
Gyakorlatilag ezt a két gépet gyúrnám össze:
https://www.youtube.com/watch?v=9-hUwqU-0ic
https://www.youtube.com/watch?v=zFQmTs-LnU8
A vezérlésen kívül mindent meg tudok oldani, de sajnos az elektronika nem az erősségem, ezért kérem az iránymutatásotokat.
Próbálgattam utánakeresni, nem túl sok sikerrel, talán egy olyan dolgot találtam amire azt mondom, hogy lehet ezzel menne, az pedig az Arduino Uno. A programozásban otthon vagyok (C++/C#/Python/Java/Javascript/PHP/VB/Pascal) de ilyet még sose csináltam.
A kérdésem tehát:
Mi az a módszer amivel egy hozzá nem értő ezt a feladatot a lehető legegyszerűbben meg tudja oldani?
Köszönöm előre is!
(#) kaqkk válasza gygy91 hozzászólására (») Márc 3, 2018 /
 
Véletlen-álvéletlen generátor ha a programozásban otthon vagy (ujjgyakorlat ..)
(#) tbarath válasza gygy91 hozzászólására (») Márc 3, 2018 /
 
Mindegy, hogy uno vagy nano a lap, mindkettő jó.
Az arduino ide C/C++, de be lehet faragni VS alá is (szerintem inkább ne, ez egyszerű feladat).
Maga a program két fv, a setup boot után fut le egyszer, a loop fut utána végtelen ciklusban. Itt digitális kimenetekre és bemenetekre lesz szükséged, (szinte) mindegyik lábat tudod digitálisként használni, bár 3x2-höz nem kell trükközni.

Nevezzünk egy ütőfelületet pontnak, ehhez két digit pin kell, egyik a világítás, a másik a nyomógomb. A setup-ban beállítod (pinmode), a loop-ban írod/olvasod.

Maga a kapcsolgatás ilyen lesz:
  1. #define pont1_be 1
  2. #define pont1_ki 2
  3. #define pont2_be 3
  4. #define pont2_ki 4
  5.  
  6. boolean x;
  7.  
  8. void setup() {
  9.   pinMode(pont1_be, INPUT_PULLUP);
  10.   pinMode(pont1_ki, OUTPUT);
  11.   digitalWrite(pont1_ki, LOW);
  12.   pinMode(pont2_be, INPUT_PULLUP);
  13.   pinMode(pont2_ki, OUTPUT);
  14.   digitalWrite(pont1_ki, LOW);
  15. }
  16.  
  17. void loop() {
  18.   digitalWrite(pont1_ki, HIGH);
  19.   x = HIGH;
  20.   while (x){
  21.     x =  digitalRead(pont1_be);
  22.   }
  23.   digitalWrite(pont1_ki, LOW);
  24.  
  25.   digitalWrite(pont2_ki, HIGH);
  26.   x = HIGH;
  27.   while (x){
  28.     x =  digitalRead(pont2_be);
  29.   }
  30.   digitalWrite(pont2_ki, LOW);
  31. }


Szerintem ha tudsz programozni érted, amit nem értesz utána keresel vagy kérdezel.

Elektronikai rész:
A bemenetre programozott pin-eket ez a kód a belső felhúzóellenálláson keresztül 5V-ra húzza, neked kell egy nyomógomb, aminek egyik kivezetése a földre megy, a másik a pin-re. Ha megnyomod akkor lehúzza a földre (logikai LOW), ezt kell figyelned.

A kimenet nem tud egy erősebb LED-et vagy lámpát meghajtani (pár mA áramtól többel nem szabad terhelni), ezért kell egy meghajtóáramkör, aminek a lényege egy FET. Bagóért kapsz ebay-en készen ha nem akarsz csinálni (Bővebben: Link), ha akarsz akkor a következő a megoldás: egy logikai FET-et kapcsolsz be és ki a digit kimeneteddel (a kapcs. rajzon a 6-os pin), ha ez magas akkor a FET kis ellenállású lesz (vezetni kezd), így áram folyik a LED-en keresztül. Az R3 ellenállás a LED áramát korlátozza, a LED-hez kell méretezni.
A hozzászólás módosítva: Márc 3, 2018

he_180303.png
    
Következő: »»   431 / 863
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem