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   31 / 850
(#) vilmosd válasza TavIR-AVR hozzászólására (») Máj 17, 2014 /
 
Szoval .. Itt van elottem az Arduino "Language Reference". Ilyen funkciot nem talalok benne.
Idézet:
„Digital I/O
pinMode()
digitalWrite()
digitalRead()”
Ez mind, de ezek nekem bitbillegtetesre hasonlitanak. Tudom.. For ciklussal lehet csinalni ilyen varazslast, de nekem ez nem igazan tetszik. Miert kell 8 (16) utasitas egy port uj ertekkel valo feltoltesehez? 16 utasitas, ha elobb torolni is akarom. Vannak esetek, amikor bizony komoly problemat okoz egy nem kivant kod letrejotte a porton.
(#) icserny válasza vilmosd hozzászólására (») Máj 17, 2014 /
 
Nem kell hozzá függvény. Lásd pl. Tutorial: Arduino Port Manipulation
  1. // Example 43.1
  2. // tronixstuff.com/tutorials > chapter 43
  3. // John Boxall - October 2011
  4. // Digital 0~7 set to outputs, then on/off using port manipulation
  5.  
  6. void setup()
  7. {
  8.   DDRD = B11111111; // set PORTD (digital 7~0) to outputs
  9. }
  10.  
  11. void loop()
  12. {
  13.   PORTD = B11110000; // digital 4~7 HIGH, digital 3~0 LOW
  14.   delay(1000);
  15.   PORTD = B00001111; // digital 4~7 LOW, digital 3~0 HIGH
  16.   delay(1000);
  17. }
(#) vilmosd válasza icserny hozzászólására (») Máj 17, 2014 /
 
Na ez az. Vegulis nem szandekszom sok idot tolteni ezzel az eszkozzel, de most megkerestek ifju titanok, hogy segitsek nekik megoldani egy-ket projektot arduinoval. Csak ezert fogtam bele az egeszbe. Sajat celra nincs szandekom hasznalni, mert ennyi penzbol kulonbet gyartok sima uC-vel. Azt meg ugy programozom sajat szajiz szerint ahogy en akarom.
Megegyszer koszi a segitseget, de ezeket nem talatam meg az emlitett doksiban.
(#) TavIR-AVR válasza vilmosd hozzászólására (») Máj 17, 2014 /
 
Az arduinoban nincs olyan fogalmom, hogy PORT.
Ott biza ez el van rejtve, ha ilyen kell tessék kinyúlni a C szintjére.
(#) icserny válasza vilmosd hozzászólására (») Máj 17, 2014 /
 
Idézet:
„ezeket nem talatam meg az emlitett doksiban.”
Nem csodálom, mert az egész Wiring/Arduino koncepció arról szól, hogy rejtsük el ezeket a részleteket a felhasználó elől.
Természetesen ennek ára van, s előfordul, hogy a fenti koncepciót megkerülve "kézbe kell venni a dolgokat" a hatékonyabb programozás érdekében.
(#) vilmosd válasza icserny hozzászólására (») Máj 17, 2014 /
 
Nem veletlenul Billy volt az otletado? Amit egyszeruen is meg lehet csinalni, az csinaljuk meg bonyolultan
(#) GPeti1977 válasza TavIR-AVR hozzászólására (») Máj 18, 2014 /
 
Szerencsére sokan nem tudják hogy az Arduino keretei közöl ki lehet törni, ez azért jó mert megmaradnak a kényelmi eszközei de ahol kell ott az avr studio szintaktikájával lehet pótolni.
Most raktam össze egy multiwii nevezetű multikopter vezérlést arduino mega panel, és a hozzá tartozó szenzorok amit kezel: giroszkóp, gyorsulásmérő, magnetométer, barométer, 5Hz GPS, feszültség árammérés, kezeli az rc vevő ppm jelét, illetve 8 motort tud 400Hz frissítéssel kezelni, mellesleg kommunikál a földi számítógéppel kiprintel rengeteg adatot, magától visszajön gps vezérléssel, tartja a magasságot, irányt, és még mellesleg egy kamerát is szintben tud tartani hogy a dőlések közben a kamera egy irányba nézzen, gimbal-nak hívják én csirkefej-nek neveztem el.
Mindez Arduino-val megszerkesztve, hihetetlen nem?
Itt a kód, érdemes letölteni már csak tanulás miatt is, hogy nem is olyan korlátos ez a dolog, lehet használni. Bővebben: multiwii
(#) Zaustuv hozzászólása Máj 18, 2014 /
 
Üdv ismét!

Egy projektem kapcsán egy olyan kérdésem vetődött fel, amire más, angol nyelvű fórumokon se nagyon találtam választ: hogyan lehet letiltani azt, hogy a program sorbaállítsa a külső megszakítás kéréseket? (Ahogy olvastam és tapasztaltam, csak egy megszakítást állít sorba, ha ennél több megszakítás kérés érkezik egymás után, a többit eldobja).
(#) TavIR-AVR válasza Zaustuv hozzászólására (») Máj 19, 2014 /
 
Az AVRekben egyszintű, nem számolós megszakításkezelés van. Ha ilyen kell:
-> ARM,
-> PIC32 (?) család.

AVR alatt _megoldható_ de nagyon nagy a bukás lehetősége!
Ekkor a INT registóztereket _kézzel_írod olvasod, hogy ha valkami beesik egy belső számlálót léptessem. Ekkor az INT kezelésed egy egyszerű pollingba megy át
(#) elektros90 hozzászólása Máj 20, 2014 /
 
Sziasztok! Megkérhetnék valakit, hogy segítsen újratölteni a firmware-t az arduino leonardo boardon? Van egy külső AVR Doper programozóm és ChipBlaster AVR programozó program. Összecsatlakoztattam az ICSP pineket. Pár oldallal írta TavIR-AVR kolega, hogy hol van a firmware és a beállítások. Azt hiszem ez a "Leonardo-prod-firmware-2012-12-10.hex" fájl kell. A beállításokkal mit kell csinálnom?

  1. mega.build.variant=mega
  2.  
  3. ##############################################################
  4.  
  5. leonardo.name=Arduino Leonardo
  6. leonardo.upload.protocol=avr109
  7. leonardo.upload.maximum_size=28672
  8. leonardo.upload.speed=57600
  9. leonardo.upload.disable_flushing=true
  10. leonardo.bootloader.low_fuses=0xff
  11. leonardo.bootloader.high_fuses=0xd8
  12. leonardo.bootloader.extended_fuses=0xcb
  13. leonardo.bootloader.path=caterina
  14. leonardo.bootloader.file=Caterina-Leonardo.hex
  15. leonardo.bootloader.unlock_bits=0x3F
  16. leonardo.bootloader.lock_bits=0x2F
  17. leonardo.build.mcu=atmega32u4
  18. leonardo.build.f_cpu=16000000L
  19. leonardo.build.vid=0x2341
  20. leonardo.build.pid=0x8036
  21. leonardo.build.core=arduino


Vagy akkor a caterina-leonardo.hex kell?
(#) TavIR-AVR válasza elektros90 hozzászólására (») Máj 20, 2014 /
 
Lényeg:
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb
leonardo.bootloader.lock_bits=0x2F


leonardo.bootloader.file=caterina/Caterina-Leonardo.hex
(#) elektros90 válasza TavIR-AVR hozzászólására (») Máj 20, 2014 /
 
Egyébként megpróbáltam AVR Studioból. Lehet, hogy letörültem a firmware-t, mert betettem, hogy erase. Aztán az írás időtúllépés miatt megszakadt... Most villog az L led, meg világít az L melletti RX vagy TX... Viszont a Win felismeri mint Arduino Leonardo.
(#) TavIR-AVR válasza elektros90 hozzászólására (») Máj 21, 2014 /
 
Időtúllépés? lehet nem teljes az égetés....
(#) elektros90 válasza TavIR-AVR hozzászólására (») Máj 21, 2014 /
 
Holnap hozzák nekem az AVR Dragont. Azzal talán sikeresebb leszek, mint ezzel a mostani Doper klónnal. Mindig 2x re csatlakozik csak. Az ID-t kiolvassa, de a FLASH tartalmát nem képes. Kár volt megvennem. Viszont egy Dragont én is vennék. Kár, hogy olyan irgalmatlan drága.
(#) reloop válasza TavIR-AVR hozzászólására (») Máj 21, 2014 /
 
Üdv! A mellékelt I2C illesztő egyelőre nem óhajt működni. Lehet, hogy az áramkörben vétettem valami hibát?

LCD I2C.JPG
    
(#) icserny válasza reloop hozzászólására (») Máj 21, 2014 /
 
Az SDA és SCL vonalakon nem látok felhúzó ellenállásokat (4,7k vagy ilyesmi).
(#) reloop válasza icserny hozzászólására (») Máj 21, 2014 /
 
Köszönöm! Pótlom haladéktalan.
(#) elektros90 válasza TavIR-AVR hozzászólására (») Máj 22, 2014 /
 
Szia!
Sikerült feltenni a bootloadert és már működik is. A kérdés viszont az, hogy mitől mászott el.
Köszönöm a segítséget!
(#) elektros90 hozzászólása Máj 26, 2014 /
 
Sziasztok!
Gondoltam megpróbálkozok kiolvasni a leonardo (atmega32U4) integrált hőmérséklet érzekelőjét.
Íme a kód:
  1. /* ARDUINO Leonardo Internal Temperature Sensor v1.0 */
  2. unsigned int ADC_Value;
  3. float ADC_Result;
  4. void setup()
  5. {
  6.   Serial.begin(9600);          //  setup serial
  7.   /* ADC INIT */
  8.   ADMUX   = (1<<REFS1)|(1<<REFS0); // Internal 2.56V Reference selected
  9.   ADMUX  |= 0b00111; // Temperature Sensor Selected
  10.   ADCSRB |= (1<<5);
  11.   ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); // 128 Prescaler 16MHz/128 = 125KHz
  12.   ADCSRA |= (1<<ADEN); //ADC Enabled
  13.   ADCSRA |= (1<<ADSC); //Conversion Start
  14. }
  15.  
  16. void loop()
  17. {
  18.   ADCSRA |= (1<<ADSC); //Conversion Start
  19.   Serial.println("Conversion...");
  20.   while (!(ADCSRA & (1<<ADIF)));
  21.   Serial.println("Conversion Complete:");
  22.   ADC_Value = ADCH;
  23.   ADC_Result =  ADC_Value * 2.56/1023;
  24.   Serial.println(ADC_Result);
  25.   delay(500);
  26. }


Az Arduino IDE a MUX[5..0]-t nem ismeri, azért úgy van ahogy.
Az eredmény az ADCH és ADCL regiszterben van tárolva. Hogy kell kiolvasni mindkét regiszter tartalmát? Az eredmény egyébként 0, úgyhogy valami nem jó.
(#) elektros90 válasza elektros90 hozzászólására (») Máj 26, 2014 /
 
Közben rájöttem, hogy az ADC_Value = ADCH helyett ADC_Value = ADC kell.
Így az eredmény 0.77. Az jó? Nemtudja valaki, hogy kell Celsiusba átszámolni?
(#) icserny válasza elektros90 hozzászólására (») Máj 26, 2014 /
 
Nézd meg ezt: Hidden Arduino Thermometer/ (a hozzászólásokat is)!
(#) elektros90 válasza icserny hozzászólására (») Máj 26, 2014 /
 
Köszönöm. Úgy nézem a program ugyanúgy van. Elméletileg működik, mert melegítettem hajszárítóval és felment 0.95 ig. Viszont a beállításhoz szükség lenne egy másik hőmérőre, az viszont nincs kéznél éppen. Végülis a cél az volt, hogy sikerüljön elindítani. Sikerült.
(#) icserny válasza elektros90 hozzászólására (») Máj 26, 2014 /
 
Ebben a fórumtopikban van egy belinkelt kódrészlet, ami talán segíthet. Sokat nem érdemes vergődni az ilyen hőméréssel, mert nem a külső hőmérsékletet hanem a lapka hőmérsékletét méri.
(#) elektros90 válasza icserny hozzászólására (») Máj 28, 2014 /
 
Szia. Csak próbaképpen játszodtam el vele, hogy felelevenítsem a programozási képességeim Vettem LM35-öt azzal mérem már.
Nemtudja valaki létezik esetleg Leonardo boardhoz is olyan progi ami képes fellőni rá a HEX-et a bootloader törlése nélkül? Hallottam Xloader-t, de az nemtámogatja. Akkor találtam egy Arduino Buildert, az viszont nem indul el nekem.
A hozzászólás módosítva: Máj 28, 2014
(#) icserny válasza elektros90 hozzászólására (») Máj 28, 2014 /
 
Idézet:
„létezik esetleg Leonardo boardhoz is olyan progi ami képes fellőni rá a HEX-et a bootloader törlése nélkül?”

Arduino IDE v1.05 miért nem jó? Feltételezem, hogy a Tools/Board -> Arduino Leonardo után a fordított programot a bootloaderrel tölti le, ami nyilván nem írja felül önmagát.

Itt a tutorial hozz: Getting Started with Arduino Leonardo

Ha viszont olyan HEX-et akartál letölteni, ami más környezetben lett fordítva, akkor viszont kétséges, hogy az "jól" lett-e fordítva (figyelembe van-e véve, hogy a bootloader mellé települjön).
(#) TavIR-AVR válasza elektros90 hozzászólására (») Máj 28, 2014 1 /
 
Arduino Leonardo működése:
1, Főprogram fut.
2, PC soros port megnyit 2400 bps-sel.
3, AVR resetel, PC sorosport bezár,
4, AVRRDUDE paraméterezve indít, 1200 bps feltöltéssel.

Az idegen HEXnek tartalmaznia kell a főprogram sorosport/Resetrutinját is! Különben eléggé macerás a Leonardora újra arduino környezetben működő darabot varázsolni!
(#) elektros90 válasza TavIR-AVR hozzászólására (») Máj 28, 2014 /
 
Sziasztok!
Csak azért érdekelt a dolog, mert nem csak arduino nyelven akarok programozni, hanem amit megcsinálok arra, utána megpróbálkozok klasszikus C vel is. Az IDE ben meg nem minden működik (legalábbis nekem...) De találtam egy atmega8 at majd arra rakom rá a HEX-et, csak kellene egy normális programozó.
Egyébként lenne egy elméleti kérdésem: Az USART-ot próbálgatom leprogramozni, most megszakításokkal. Anno azt tanítottak a mikroprocesszorokon, hogy a megszakításban ne csináljunk nagyon semmit, csak változó értéket változtassunk. Az UDR kiolvasás mehet az ISR rutinban, vagy inkább csak jelezzen a main-nak?
(#) Karesz85 hozzászólása Máj 29, 2014 /
 
Sziasztok!
Led fényerejével kísérletezek, és eszembe jutott hogy a led kikapcsolására az : analogWrite "pwm=0" vagy célszerűbb teljesen lekapcsolni digitalWrite LOW, szóval takarékosabb?
Remélem érthető vagyok.
(#) icserny válasza Karesz85 hozzászólására (») Máj 29, 2014 /
 
Idézet:
„analogWrite "pwm=0" vagy célszerűbb teljesen lekapcsolni digitalWrite LOW, szóval takarékosabb?”
Gyakorlatilag mindegy, mert az analogWrite(0) is digitalWrite(pin, LOW) kiadását eredményezi. Lásd a wiring_analog.c állományban!

  1. void analogWrite(uint8_t pin, int val)
  2. {
  3.         pinMode(pin, OUTPUT);
  4.         if (val == 0)
  5.         {
  6.                 digitalWrite(pin, LOW);
  7.         }
  8.  
  9.     ..... stb.
  10.  
  11. }
(#) Karesz85 válasza icserny hozzászólására (») Máj 29, 2014 /
 
Köszönöm!
Következő: »»   31 / 850
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