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   463 / 839
(#) KoblogPerGyok válasza kapu48 hozzászólására (») Júl 20, 2018 / 1
 
Törölve.

Értem mi a különbség a két megadás között, de továbbra sem szimpi nagyon!
A hozzászólás módosítva: Júl 20, 2018
(#) KoblogPerGyok válasza KoblogPerGyok hozzászólására (») Júl 20, 2018 / 1
 
Nem ment el a módosítás.

Így már világos mi a különbség a szimpla ' és a " között a felsorolásoknál. Köszi!
(#) david10 válasza kapu48 hozzászólására (») Júl 20, 2018 /
 
Köszönöm szépen mindenkinek a segítségét!
Ma kísérleteztem a nem rég írt programmal, a billentyűzet nagyjából már készen is van .
Amikor teljesen be lesz fejezve a keyboard (kb. jövőhét péntekre számítok, feltéve ha még egy ilyen hiba be nem csúszik), akkor megmutatom, hogy milyen lett a kész keyboard.

A pointer használatnak mi az előnye?
A hozzászólás módosítva: Júl 20, 2018
(#) berkesandor hozzászólása Júl 23, 2018 /
 
MMA 7660 gíroszkópot szeretnék "programozni".
Hogyan tudom a regisztereket kiolvasni bőlőle (I2C kommunkálok vele), és átírni őket?
Mi ennek a dolognak az elve?

Bővebben: Link
(#) icserny válasza berkesandor hozzászólására (») Júl 23, 2018 /
 
(#) berkesandor válasza icserny hozzászólására (») Júl 23, 2018 /
 
Nem akarok könyvtárat használni, mert szűk a hely.
Csak az előre beállítotott interruptját akarom használni.
(#) devilke3000 válasza berkesandor hozzászólására (») Júl 23, 2018 /
 
Ha ezt gyronak szeretnéd használni szerintem nem fog menni ez nem tud tengely elfordulást érzékelni....
ilyesmit:Bővebben: Link
Ami tudja mpu6050,9250 ezek elterjetek...
(#) berkesandor válasza devilke3000 hozzászólására (») Júl 23, 2018 /
 
Annyi a dolga, ha megmozdul, ébressze az arduinót, mindegy a tegnely, mindegy az irány.
(#) Bakman válasza berkesandor hozzászólására (») Júl 23, 2018 /
 
Az adatlap 23. oldal alján le van írva, hogyan lehet egy regisztert írni. Neked a 0x06-os regiszter kell, I2C kommunikáció.
(#) berkesandor válasza Bakman hozzászólására (») Júl 23, 2018 /
 
Ezt nagyjából értem is, de hogyan tudom kiolvasni a pl. a 0x06 regiszter 8 bit-jét?
(#) vargham válasza berkesandor hozzászólására (») Júl 23, 2018 /
 
Ez egy lineáris gyorsulásmérő, nem giroszkóp.
Nézd meg, hogy működik a lib, és vedd ki belőle azt a néhány funkciót, ami neked kell.
Vagy keress egy Arduino I2C tutorialt.
Egyébként valószínűleg valami ilyesmi kell a regiszter olvasáshoz:
1. I2C start
2. Write device address in write mode
3. Write register address
4. I2C stop
5. I2C start
6. Write device address in read mode
7. Read register content
8. I2C stop

Lehet, hogy a 4 és 5 nem kell, olvasd el az eszköz adatlapját.
(#) Bakman válasza vargham hozzászólására (») Júl 23, 2018 /
 
4, és 5 helyett egy restart kell, ha minden igaz.
(#) mateatek válasza berkesandor hozzászólására (») Júl 23, 2018 /
 
Írni így tudod (talán):
  1. Wire.beginTransmission(0x4C); //eszköz cím
  2.   Wire.send(0x06); //regiszte cím
  3.   Wire.send(0xFF); //regiszter bitek adatai
  4.   Wire.endTransmission();


De különben simán ki lehet ollózni a lib-ből. Ami pofon egyszerű.
A hozzászólás módosítva: Júl 23, 2018
(#) devilke3000 hozzászólása Júl 23, 2018 /
 
internal 16Mhz atmega328 mcu medig stabil a vcc min feszültségel?
Nincs ithon 3.3v nano csak 5v enek a vcc menyire engedhetem le min ahol még müködik megbizhatoan?
(#) mateatek válasza devilke3000 hozzászólására (») Júl 23, 2018 /
 
RTFM!
(#) devilke3000 válasza mateatek hozzászólására (») Júl 23, 2018 /
 
Köszönöm!
(#) berkesandor válasza mateatek hozzászólására (») Júl 24, 2018 /
 
Az irásra van példa a lib-ek, de szeretném olvasni is, hogy biztosan tudjam mit csinálok.

Ez alapján kéne szerintem elindulnom:

  1. void MMA7660::write(uint8_t _register, uint8_t _data) {
  2.     Wire.begin();
  3.     Wire.beginTransmission(MMA7660_ADDR);
  4.     Wire.write(_register);
  5.     Wire.write(_data);
  6.     Wire.endTransmission();
  7. }
  8.  
  9. /*Function: Read a byte from the regitster of the MMA7660*/
  10. uint8_t MMA7660::read(uint8_t _register) {
  11.     uint8_t data_read;
  12.     Wire.begin();
  13.     Wire.beginTransmission(MMA7660_ADDR);
  14.     Wire.write(_register);
  15.     Wire.endTransmission();
  16.     Wire.beginTransmission(MMA7660_ADDR);
  17.     Wire.requestFrom(MMA7660_ADDR,1);
  18.     while(Wire.available())
  19.     {
  20.         data_read = Wire.read();
  21.     }
  22.     Wire.endTransmission();
  23.     return data_read;
  24. }
(#) berkesandor válasza Fizikus hozzászólására (») Júl 24, 2018 /
 
(#) berkesandor válasza berkesandor hozzászólására (») Júl 25, 2018 /
 
Úgy gondolom ennek működni kéne, de nem:
  1. #include <Wire.h>
  2.  
  3. #define MMA7660_ADDR  0x4C
  4.  
  5. #define MMA7660_SRST  0x04                            
  6. #define MMA7660_SPCNT 0x05                            
  7. #define MMA7660_INTSU 0x06
  8.     #define MMA7660_SHINTX 0x80
  9.     #define MMA7660_SHINTY 0x40
  10.     #define MMA7660_SHINTZ 0x20
  11.     #define MMA7660_GINT 0x10
  12.     #define MMA7660_ASINT 0x08
  13.     #define MMA7660_PDINT 0x04
  14.     #define MMA7660_PLINT 0x02
  15.     #define MMA7660_FBINT 0x01
  16. #define MMA7660_MODE  0x07
  17.     #define MMA7660_STAND_BY 0x00
  18.     #define MMA7660_ACTIVE   0x01
  19. #define MMA7660_SR    0x08      //sample rate register
  20.     #define AUTO_SLEEP_120  0X00//120 sample per second
  21.     #define AUTO_SLEEP_64   0X01
  22.     #define AUTO_SLEEP_32   0X02
  23.     #define AUTO_SLEEP_16   0X03
  24.     #define AUTO_SLEEP_8    0X04
  25.     #define AUTO_SLEEP_4    0X05
  26.     #define AUTO_SLEEP_2    0X06
  27.     #define AUTO_SLEEP_1    0X07
  28. #define MMA7660_PDET  0x09
  29. #define MMA7660_PD    0x0A
  30.  
  31. uint8_t data_read;
  32.  
  33. void setup() {
  34.    
  35.     Serial.begin(9600);
  36.     Wire.begin();                                   //Standby mode
  37.     Wire.beginTransmission(MMA7660_ADDR);
  38.     Wire.write(MMA7660_MODE);
  39.     Wire.write(MMA7660_STAND_BY);
  40.     Wire.endTransmission();
  41.  
  42.     Wire.begin();                                 // register irás
  43.     Wire.beginTransmission(MMA7660_ADDR);
  44.     Wire.write(MMA7660_INTSU);
  45.     Wire.write(MMA7660_GINT);
  46.     Wire.endTransmission();
  47.  
  48.     Wire.begin();                                //register olvasás
  49.     Wire.beginTransmission(MMA7660_ADDR);
  50.     Wire.write(MMA7660_INTSU);
  51.     Wire.endTransmission();
  52.     Wire.beginTransmission(MMA7660_ADDR);
  53.     Wire.requestFrom(MMA7660_ADDR,8);
  54.     while(Wire.available())
  55.     {
  56.         data_read =  ( Wire.read());
  57.         Serial.print ( data_read);
  58.     }
  59.     Wire.endTransmission();
  60.  
  61. }
  62.  
  63. void loop() {
  64.  
  65. }


"000000160" ad vissza. Hol a hiba?
(#) devilke3000 hozzászólása Júl 25, 2018 /
 
slep modbol felébresztés csak interrup lábakon lehetséges pl 328 nál d2, d3 vagy van más függvény vagy láb amivel ez lehetséges?
pl
  1. //This program will test the PIR using interrupts
  2. #include <avr/sleep.h>
  3. #include <avr/interrupt.h>
  4.  
  5.  
  6. void setup()
  7. {
  8. Serial.begin(115200);
  9. pinMode(3,INPUT);
  10. digitalWrite(3, LOW);
  11. pinMode(4,OUTPUT);
  12. //Signal PIR startup by flashing an LED
  13. digitalWrite(4,HIGH);
  14. delay(5000);
  15. digitalWrite(4,LOW);
  16. delay(200);
  17. }
  18.  
  19. void loop()
  20. {
  21.   //Come out of sleep and read state of PIR pin
  22.   bool flag = digitalRead(3);
  23.   if (flag == true)
  24.   {
  25.     Serial.println("tripped");
  26.     digitalWrite(4,HIGH);
  27.   }
  28.   else
  29.   {
  30.     Serial.println("not tripped");
  31.     digitalWrite(4,LOW);
  32.   }
  33.   delay(100);
  34.   sleepNow();
  35. }
  36.  
  37. void sleepNow()
  38. {
  39.     Serial.println("Entering Sleep");
  40.     // Set pin 3 as interrupt and attach handler:
  41.         attachInterrupt(1, wakeUp, CHANGE);
  42.         delay(100);
  43.         // Choose our preferred sleep mode:
  44.         set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  45.        
  46.     // Set sleep enable (SE) bit:
  47.     sleep_enable();
  48.  
  49. // Put the device to sleep:
  50. sleep_mode();
  51.  
  52. // Upon waking up, sketch continues from this point.
  53. sleep_disable();
  54. }
  55.  
  56. void wakeUp(void)
  57. {
  58.     detachInterrupt(1);
  59. }
(#) vargham válasza devilke3000 hozzászólására (») Júl 25, 2018 /
 
Majd mindegyik lábon van pcint lehetőség. Az is ébreszti.
(#) devilke3000 válasza vargham hozzászólására (») Júl 25, 2018 /
 
mcu belsö regiszteres dolgokba totál nem értem van egyszerübb megoldás még?
(#) devilke3000 hozzászólása Júl 25, 2018 /
 
interupt 2..3 pin
  1. #include <avr/interrupt.h>
  2. attachInterrupt(1, wakeUp, CHANGE); //3 pin ellenörzése
  3.  
  4. detachInterrupt(1); //3 pin ellenörzése kikapcsolássa


Másik könyvtár ami más D4..D13 pint is vehet fel!
  1. #include <PinChangeInt.h>
  2.  
  3. attachPinChangeInterrupt(4, wakeUp, CHANGE); //4 pin ellenörzése


4 pin ellenörzése kikapcsolássa milyen parancsal vajon?

Valaki?
A hozzászólás módosítva: Júl 25, 2018
(#) berkesandor válasza devilke3000 hozzászólására (») Júl 25, 2018 /
 
Szerintem alapből, 2,3 pin-en megy. Miért nem jó az neked?
(#) devilke3000 válasza berkesandor hozzászólására (») Júl 25, 2018 /
 
Mert már foglaltak szenzorokal!
plD4....D10 is vannak de ezeken (nem interupt) hogy tudom visszahozni sleep állapotbol a 328 at?
(#) berkesandor válasza devilke3000 hozzászólására (») Júl 25, 2018 /
 
Periódikus altatás?
15 ms -től 8 s -ig gond nélkül megy.
A hozzászólás módosítva: Júl 25, 2018
(#) devilke3000 válasza berkesandor hozzászólására (») Júl 25, 2018 /
 
<avr/sleep.h> használom!
van valami van pcint is de az kinai nekem definicio sem megy belöre!
(#) devilke3000 válasza berkesandor hozzászólására (») Júl 25, 2018 /
 
Ez ébresz is de nem tudom kikapcsolni!

#include <PinChangeInt.h>

attachPinChangeInterrupt(4, wakeUp, CHANGE);

De nem alszik is vissza!
  1. #include <avr/sleep.h>
  2. #include <avr/interrupt.h>
  3. #include <PinChangeInt.h>
  4.  
  5. void setup()
  6. {
  7. Serial.begin(115200);
  8. pinMode(3,INPUT);
  9. digitalWrite(3, LOW);
  10. pinMode(4, INPUT_PULLUP);
  11. digitalWrite(4, LOW);
  12. pinMode(13,OUTPUT);
  13. //Signal PIR startup by flashing an LED
  14. digitalWrite(13,HIGH);
  15. delay(2000);
  16. digitalWrite(13,LOW);
  17. delay(200);
  18. }
  19.  
  20. void loop()
  21. {
  22.   //Come out of sleep and read state of PIR pin
  23.   bool flag = digitalRead(3);
  24.   bool flag2 = digitalRead(4);
  25.   if (flag == true || flag2 == true)
  26.   {
  27.     Serial.println("tripped");
  28.     digitalWrite(13,HIGH);
  29.   }
  30.   else
  31.   {
  32.     Serial.println("not tripped");
  33.     digitalWrite(13,LOW);
  34.   }
  35.   delay(100);
  36.   sleepNow();
  37. }
  38.  
  39. void sleepNow()
  40. {
  41.     Serial.println("Entering Sleep");
  42.     // Set pin 3 as interrupt and attach handler:
  43.         attachInterrupt(1, wakeUp, CHANGE);
  44.       //  attachPinChangeInterrupt(4, wakeUp, CHANGE);
  45.         PCintPort::attachInterrupt(4, wakeUp, CHANGE);
  46.         delay(100);
  47.         // Choose our preferred sleep mode:
  48.         set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  49.        
  50.     // Set sleep enable (SE) bit:
  51.     sleep_enable();
  52.  
  53. // Put the device to sleep:
  54. sleep_mode();
  55.  
  56. // Upon waking up, sketch continues from this point.
  57. sleep_disable();
  58. }
  59.  
  60. void wakeUp(void)
  61. {
  62.     detachInterrupt(1);
  63.    
  64.     PCintPort::detachInterrupt(4);
  65.     //detachPinChangeInterrupt(4);
  66. }
A hozzászólás módosítva: Júl 25, 2018
(#) berkesandor válasza devilke3000 hozzászólására (») Júl 25, 2018 /
 
Ez egy favágó kód.
1 s alvás utána, megnézi a WakeUpPin-t alacsony-e.
Ha csak ez fut a loop-ban "szinte" végig alszik, de a pin alacsony szintje "ébreszti".

  1. void loop() {
  2.    LowPower.powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);
  3.  
  4.   if ( digitalRead (WakeUpPin)  == LOW )
  5.   {
  6.     tortenikvalami();
  7.   }
  8. }
(#) devilke3000 válasza berkesandor hozzászólására (») Júl 25, 2018 /
 
Nem ébred fel hiába huzogatom a D4 lábat LOW re!
Közbe mérem az áramot micro 6uA..


  1. #include "LowPower.h"
  2.  
  3. const int led = 13;
  4. const int wakeUpPin = 4;
  5.  
  6. void wakeUp()
  7. {
  8.  
  9. }
  10.  
  11. void setup()
  12. {
  13.    
  14.     pinMode(wakeUpPin, INPUT);  
  15.     pinMode(led, OUTPUT);
  16. }
  17.  
  18. void loop()
  19.  
  20.  
  21. {
  22.  
  23.   LowPower.powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);
  24.  
  25.  if ( digitalRead (wakeUpPin) == HIGH )
  26.    {
  27. digitalWrite(led, HIGH);
  28. delay(1000);
  29. digitalWrite(led, LOW);
  30. delay(1000);
  31.    
  32.    
  33.    }  
  34. }
Következő: »»   463 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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