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   207 / 847
(#) Balázs válasza trickentrack hozzászólására (») Márc 28, 2016 /
 
Vannak ugye a mikrokontrollerek, DSP-k, FPGA-k és hasonlók, amik mind programozható IC-k. Alapból semmit nem tudnak, neked kell bele programot írnod. Viszont a program betöltéséhez külön programozóáramkör kell, ahhoz, hogy a program elinduljon, minimum szükség van egy tápfeszültségre és egy órajelre, úgyhogy ez macerás tud lenni. Itt jönnek a képbe az olyan fejlesztőpanelek, mint pl. az Arduino. Ezekben a teljes áramköri környezet ki van alakítva, a programozó hardver rajta van a panelen, így csak egy USB kábelre van szükséged, és már írhatod is a kódot.

Tehát alapvetően gyors prototípusfejlesztéshez valók, nem arra, hogy fixen beépítsd valahova. Viszont a kisebb panelek már annyira olcsók, hogy sokan mégis ezt csinálják, mert egyszerűen ennyi pénzért nem éri meg saját áramkört tervezni.

Az Arduinónál egy nagyon magas szintű programozási környezetet kapsz, a mikrokontroller belső lelki világa el van fedve előled, így nagyon egyszerű programozni, főleg hogy rengeteg szenzorhoz, kijelzőhöz, motorvezérlőhöz és egyéb hardverhez van a neten library. Ha most kezdesz el mikrokontrollerekkel foglalkozni, akkor az Arduino jó kezdő platform. Aztán ha komolyan csinálod, akkor ki fogod nőni, de addigra meg már nem fog nagy akadályt jelenteni az architektúraváltás.
(#) jeges válasza Balázs hozzászólására (») Márc 28, 2016 /
 
köszi!
(#) jeges hozzászólása Márc 28, 2016 /
 
sziasztok!
Szeretnék eepromba irni / kiolvasni letárolt byte adatokat de van ebben a kodban egy rész ami nem akar müködni vagyis a kiolvasás if fügvény alat!
  1. #include <EEPROM.h>
  2.  
  3. /*
  4. Turns on and off and Dim a light emitting diode(LED) connected to digital
  5. pin 9, when pressing a pushbutton attached to pin 2.
  6.  
  7. The circuit:
  8. * LED attached from pin 13 to ground
  9. * pushbutton attached to pin 2 from +5V
  10. * 10K resistor attached to pin 2 from ground
  11. */
  12.  
  13.  
  14. // set pin numbers:
  15. const int buttonPin = 2; // the number of the pushbutton pin
  16. const int ledPin = 9; // the number of the LED pin
  17.  
  18. // variables will change:
  19. int buttonState = 0; // variable for reading the pushbutton status
  20. boolean dir = 0; // The current dir state (UP/DOWN)
  21. int value = 0; // The current value
  22.  
  23.  
  24. void setup() {
  25.  
  26. pinMode(ledPin, OUTPUT); // initialize the LED pin as an output:
  27. pinMode(buttonPin, INPUT); // initialize the pushbutton pin as an input:
  28.  
  29.  
  30. }
  31.  
  32. void loop() {
  33.  
  34.  
  35. // check if the pushbutton is pressed. if it is, the buttonState is HIGH:
  36.  
  37. if (digitalRead(buttonPin) == HIGH) { // read the state of the pushbutton value:
  38. dir =! dir; // Invert direction
  39.  
  40. for (int i=0; i <= 300; i++){ // wait 300ms before count -> loop short press
  41. delay(1);
  42. if ((digitalRead(buttonPin) == LOW)& value !=0) {value = 0; dir = 0; break; }
  43. if ((digitalRead(buttonPin) == LOW)& value ==0) {value = EEPROM.read(1); dir = 1; break;}
  44. }
  45. analogWrite(ledPin, value); // Write value to led
  46.  
  47. while (digitalRead(buttonPin) == HIGH){ // If the button is still High then count -> long press
  48. if (dir == 1 & value <255){value++;} // count up until 255
  49. if (dir == 0 & value >20) {value--;} // count down to min value (20)
  50. analogWrite(ledPin, value); // Write value to led
  51. delay(1);
  52. EEPROM.write(1,value); // write last value in EEPROM
  53. }
  54.  
  55. }
  56. }


probléma enél a sornál sejtem nert nincs kiolvasás és összehasonlitás mert 328 reset után fel ledPin 20 vissza áll hol ott eepromba 1 registerbe pl 200 éték van!

  1. if ((digitalRead(buttonPin) == LOW)& value ==0) {value = EEPROM.read(1); dir = 1; break;}
A hozzászólás módosítva: Márc 28, 2016
(#) szeg76 válasza jeges hozzászólására (») Márc 28, 2016 /
 
C nyelvben a szimpla & és | a bitenkénti műveletek operátorai.
Logikai ÉS illetve VAGY művelethez a && és || kell.
(#) Tetye hozzászólása Márc 28, 2016 /
 
Sziasztok!
Ugyan másik topikban már kérdeztem de az elég kihalt, és mivel arduino védelme miatt van rá szükségem, inkább megkérdezem itt is... DS18b20 galvanikus leválasztását arduinóról csinálta már valaki?
Bővebben: Erre gondoltam.
(#) Kovidivi válasza Tetye hozzászólására (») Márc 28, 2016 /
 
Miért nem próbálod ki, hogy melyik működik? Az I2C-t leválasztani nem kis feladat. Ha valamelyik kapcsolás működik is, azt csak próba alapján tudod eldönteni. Használj minél kisebb frekvenciát.
(#) Tetye válasza Kovidivi hozzászólására (») Márc 28, 2016 /
 
Azért mert még mindig nem tudom hogy milyen opto szerepelhet a képen.
Ez volt az egyik kérdésem. Meg ha valaki már csinálta és nem működik akkor minek csináljam meg én is? És lehet hogy valaki ismer olyat ami biztos jó és nem kell kísérletezni vele.
Frekit nem igazán tudok a one wire esetében állítani.
(#) Kovidivi válasza Tetye hozzászólására (») Márc 28, 2016 /
 
Vannak spéci IC-k, de drágák. Nem hiszem, hogy sokan csináltak volna már ilyet. Amikor én akartam, utánaolvastam, és letettem inkább róla! Optocsatolót meg kell nézni valamelyik áruházban, darlington az egyik oldala, tehát nagyot erősít. Esetleg másik topicban kérdezz rá, melyik lenne jó. De kipróbálhatod sima optóval is, nem sok idő összedobni. A frekit lassítanod kell, a normál I2C 100KHz-e szerintem sok lesz az optónak. Minimum szkóppal kellene nézned a jelalakokat, ha van szkópod. Nézz utána, hogy lehet lassítani a kommunikációt. Bővebben: Link
A hozzászólás módosítva: Márc 28, 2016
(#) Tetye válasza Kovidivi hozzászólására (») Márc 28, 2016 /
 
De ez nem I2C, hanem 1 wire.
(#) GPeti1977 válasza Tetye hozzászólására (») Márc 28, 2016 /
 
Mindegy, bár az 1wire fix időzítéseket használ nem veheted le a frekvenciát.
Lényeg a minél gyorsabb optocsatoló.
(#) szeg76 válasza jeges hozzászólására (») Márc 28, 2016 /
 
Amit korábban írtam, annak a működéshez itt pont nincs köze.

Mit szeretnél elérni, milyen módon működjön ez a program?
(#) Kovidivi válasza Tetye hozzászólására (») Márc 28, 2016 /
 
A probléma ugyanaz: egy vonalon oda-vissza kommunikáció, jó gyorsan.
(#) trickentrack válasza Balázs hozzászólására (») Márc 29, 2016 /
 
Köszönöm a részletes választ! Így már értem. Ilyen programozót hol tudnék vásárolni? Ezen kívül még kellene hozzá valami?

Módosítás: Közbe rákerestem, hogy hogy is néz ki ez az egész! Ez most sajnos megkevert!
Igazából kell egy próbapanel, azon bekötöm az IC lábait a programozóba és fel tudom programozni?
A hozzászólás módosítva: Márc 29, 2016
(#) Balázs válasza trickentrack hozzászólására (») Márc 29, 2016 /
 
Nem, ez nem programozó, hanem ezt magát lehet programozni (bár használható programozónak is, de szerintem te most nem ezt szeretnéd). Csak egy számítógép kell hozzá, és írhatsz rá saját kódot. Az már más kérdés, hogy magukon az Arduino paneleken nincs túl sok minden a mikrokontrolleren és az USB interfészen kívül, általában csak egy LED. Úgyhogy ha a LED villogtatásnál valamivel izgalmasabb programokat is szeretnél írni, akkor nyilván valamit fogsz kötni az Arduinohoz (kijelzőt, hangszórót, szenzorokat, ilyesmit). Itt van egy videó, amiben bemutatják, hogyan néz ki a dolog.

Vásárolni sok helyen lehet. Legolcsóbb az ebay, de vannak hazai források is (HEStore, TávIR stb.).
(#) danca hozzászólása Márc 29, 2016 /
 
Üdvözlök mindenkit
Kellemes húsvéti ünnepeket!

Van két Samsung SA300-as monitorom, az egyikből hiányzik a kapacitív gombsor. Szétszedtem azt amiben nincs panel, és láttam, hogy I2C buszt használ. Ráakaszkodtam egy Saleae klónnal, és a mellékletben látható a kommunikáció. Amint látható, két folyamat van egymás után. Az első alatt a monitor 42-t küld a panelnek, ezután kér tőle adatot. Az utolsó blokkban megy át a gombok állapota. A másik monitorból kiderítettem, hogy a 8 bit a 8 gomb állapotát jelzi. A képen azért látható 255, mert a gombsor nem volt rákötve az alaplapra, ugyanis, arról a felvételről, amit akkor csináltam, amikor rá volt kötve, nem készítettem mentést.
Szóval durván annyi lenne, hogy a gombsort arduino pro microval szeretném helyettesíteni. Ehhez kérnék tőletek egy kis segítséget, mert a programmal még nem értem el a kívánt eredményt.

Íme a program:

  1. #include <Wire.h>
  2.  
  3. void setup()
  4. {
  5.   Wire.begin(185);
  6.   Wire.onRequest(request);
  7.   pinMode(13, OUTPUT);
  8. }
  9.  
  10. void loop()
  11. {
  12.  
  13. }
  14.  
  15. void request()
  16. {
  17.   digitalWrite(13, HIGH);
  18.   if(digitalRead(2))
  19.     Wire.write(1);
  20.   else
  21.     Wire.write(0);
  22. }


Egyelőre nem figyeltem a 42-t, de így is működnie kellene. Valamiért még a led sem világít, tehát az arduino nem észlel bejövő csomagot. Tudna valaki segíteni abban, hogy hogyan lehetne ezt működésre bírni?

Köszönöm
A hozzászólás módosítva: Márc 29, 2016

samsung.PNG
    
(#) Balázs válasza danca hozzászólására (») Márc 29, 2016 /
 
Gyanús nekem az a 185-ös cím, mert el sem fér 7 biten. Szerintem a logikai analizátor az R/W bitet is beleérti a címbe, és valójában az eszköz címe 92. Illetve a Wire alapból 100kbps átviteli sebességet használ, ez egyezik a monitorodéval?
(#) danca hozzászólása Márc 29, 2016 /
 
Próbáltam 92-vel is, de ezzel sem megy. Viszont az analizátor 40kHz körüli frekvenciát írt, az lehet a baj, de átírtam a frekvenciát, és még így sem jelez bejövő adatot, pedig a 42-t ki tudja olvasni.
(#) danca válasza danca hozzászólására (») Márc 29, 2016 /
 
Egyelőre úgy tűnik, hogy már jó, csak az arduino Wire könvtárát kellett átírni, ugyanis nem kezelte az ismételt startot.
(#) tomat5 hozzászólása Márc 29, 2016 /
 
Üdv!
Arduino uno-ról költöztettem át a programomat mega-ra. Minden megy csak az SD kártya kezelés nem. Az cs pint megváltoztattam 10 ről 53 ra, a többit az arduino piout diagram alapján bekötöttem, többször leellenőriztem. Ezen kívül a program ugyan az a két board-on. Az uno elindul írja, olvassa a kártyát a mega nem. Kínomban tettem egy logikai analizátort mindkét panelre. Az unon látom a jelalakokat a megán nem. Az egyik kedves itteni kolléga kisegített egy új mega board-al (gondoltam biztosan tönkretettem valamit) ugyanaz, nem indul el az spi. A kártya slot egy kijelző shield-en van.
Ötlet valakinek?
Köszönöm.
(#) jeges válasza szeg76 hozzászólására (») Márc 29, 2016 /
 
szia!

Én azt szeretném amit linkeltem hogy 2 nyomogombal pwm kitöltést szabályozni 0...255 és vissza 255..0 és a beálitot pwm értéket eepromba tárolni le ha áram szünet van eepromba tárolt pwm értékröl induljon a led!
(#) jeges válasza szeg76 hozzászólására (») Márc 29, 2016 /
 
kiprobáltam mindkét variáciot de kiolvasási rész eeprombol nem müxik igy sem....

if ((digitalRead(buttonPin) == LOW)&& value ==0) {value = EEPROM.read(1); dir = 1; break;}

if ((digitalRead(buttonPin) == LOW)|| value ==0) {value = EEPROM.read(1); dir = 1; break;}
(#) erdeidominik1999 hozzászólása Márc 29, 2016 /
 
Sziasztok!
Vettem egy rs485 modult az arduhoz, amiben max485 chip van. Egy PTZ kamerát szeretnék vele meghajtani, 2400 baud-on. Találtam több tutorialt is hozzá, de nem sikerül elindítani a kamerát, gondoltam hogy rossz stringet küldök rá, ezért fogtam egy dvr-t (ezzel megy a ptz a kamerán), és arra dugtam az rs485 modult, hogy kiolvassam, hogy miket küld. Viszont akár mit csinálok csak krix-kraxok jönnek, valószínű ezért is nem hajtja meg a kamerát sem, mert írni sem ír rendesen. Mi lehet a gond? Előre is köszi!
(#) jeges hozzászólása Márc 29, 2016 /
 
szeg76 köszönöm az észrevételt és javaslatot!

  1. #include <EEPROM.h>
  2.  
  3. /*
  4.  Turns on and off and Dim a light emitting diode(LED) connected to digital
  5.  pin 9, when pressing a pushbutton attached to pin 2.
  6.  
  7.  The circuit:
  8.  * LED attached from pin 13 to ground
  9.  * pushbutton attached to pin 2 from +5V
  10.  * 10K resistor attached to pin 2 from ground
  11.  http://arduinoforum.nl/viewtopic.php?f=9&t=1014
  12.  */
  13.  
  14.  
  15. // set pin numbers:
  16. const int buttonPin = 2;     // the number of the pushbutton pin
  17. const int ledPin =  9;      // the number of the LED pin
  18.  
  19. // variables will change:
  20. int buttonState = 0;         // variable for reading the pushbutton status
  21. boolean    dir = 0;          // The current dir state (UP/DOWN)
  22. int        value = 0;        // The current value
  23.  
  24.  
  25. void setup() {
  26.  
  27.   pinMode(ledPin, OUTPUT);   // initialize the LED pin as an output:
  28.   pinMode(buttonPin, INPUT); // initialize the pushbutton pin as an input:
  29.  
  30.  // value=EEPROM.read(1);
  31. //analogWrite(ledPin, value);
  32.  
  33. }
  34.  
  35. void loop() {
  36.  
  37.  
  38.   // check if the pushbutton is pressed. if it is, the buttonState is HIGH:
  39.  
  40.   if (digitalRead(buttonPin) == HIGH) {     // read the state of the pushbutton value:
  41.     dir =! dir;                             // Invert direction
  42.    
  43.      for (int i=0; i <= 300; i++){          // wait 300ms before count  -> loop short press
  44.           delay(1);
  45.           if ((digitalRead(buttonPin) == LOW)&& value !=0) {value = 0; dir = 0; break; }
  46.           if ((digitalRead(buttonPin) == LOW)&& value ==0) {value = EEPROM.read(1); dir = 1; break;}
  47.      }
  48.      analogWrite(ledPin, value);             // Write value to led
  49.          
  50.     while (digitalRead(buttonPin) == HIGH){  // If the button is still High then count  -> long press
  51.       if (dir == 1 && value <255){value++;}   // count up until 255
  52.       if (dir == 0 && value >20)  {value--;}  // count down to min value (20)
  53.       analogWrite(ledPin, value);            // Write value to led
  54.       delay(1);
  55.      // EEPROM.write(1,value);                // write last value in EEPROM
  56.  
  57.       EEPROM.update(1,value);                // write last value in EEPROM min 1.67 arduino ide command
  58.     }
  59.      
  60.   }  
  61. }
(#) CyberLaci hozzászólása Márc 30, 2016 /
 
Sziasztok,
Ma megérkezett messze földről a rendelt dolgaim, és összeállítottam ezt mikrofon nélkül. (tip120 mosfettel)
A célom, hogy rs485-ön kapja majd a nano az rgb ledszalag színkódját, illetve a fényerősséget. A színek beállítása tökéletesen működik, a sima fehér ledszalag fényerejét tudom állítani, rs485 külön már működik. De az rgb fényerőssége nem megy. Tudnátok némi segítséget adni?
Illetve az adat lábra raktam 220Ohm-ot. Mennyire fog melegedni akár több órás használat során? Vettem hűtőbordát hozzá, rárakjam? Esetleg ellenállás máshova? (Bár készre forrasztottam mindent a nyákon
(a fehér szalag mosfetje folyamatos max fényerőn azért melegszik)
köszönöm
(#) CyberLaci válasza CyberLaci hozzászólására (») Márc 30, 2016 /
 
A fényerő állítást sikerült megoldani. Viszont a melegedés problémát fog okozni. 6W -nyi fehér ledet kellene vezérelnie, ill. kb 20W rgb ledet. Most a tesztelésnél 18W fehér áll rendelkezésemre, és ennél teljes fényerővel a tip120 mosfet eléggé felforrósodik. Egy nanoval vezérlem.
Mit javasoltok? Gyerekszobába gipszkarton szigetbe lenne beépítve.
Előre is köszi!
(#) GPeti1977 válasza CyberLaci hozzászólására (») Márc 30, 2016 /
 
A TIP120 egy darlington tranzisztor, használj logic level mosfet -et.
Például IRLD024
(#) CyberLaci válasza GPeti1977 hozzászólására (») Márc 30, 2016 /
 
Még IRFZ44N van itthon... Ellenállások jók szerinted így, esetleg máshova? Szédszedem, és így egyszerűbb
köszönöm
(#) morzsa15 hozzászólása Márc 30, 2016 /
 
Ezen a linkel letölthető a flappy bird nevű játék. Ha bármi kérdésed lenne írj nyugodtan.Bővebben: Link
(#) GPeti1977 válasza CyberLaci hozzászólására (») Márc 30, 2016 /
 
Az sem jó.
(#) CyberLaci válasza GPeti1977 hozzászólására (») Márc 30, 2016 /
 
Melyikre írtad hogy az sem jó?

Közben lecseréltem a TIP120akat IRFZ44N-re, a 220Ohm maradt minden ágon a vezérlőjelen. Eddig úgy tűnik tökéletesen működik. Hidegek, egy cseppet sem melegszenek. Lehet vele hosszútávon gond?
Következő: »»   207 / 847
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