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   369 / 845
(#) foto_dioda válasza tbarath hozzászólására (») Júl 29, 2017 /
 
Egy megadott jelszinten szeretnék jelzést kicsiholni belőle pl:felvillanó LED.
Mint ahogy fent is írtam az IR LED is az Arduinohoz van kötve folyamatos tápellátással az 5v és a föld közé kötve egy 100 Ohm-os ellenállással. Láttam linkeket ahol ugyan így van bekötve csak egy ellenállást adtak a vevő után is és arra kötötték párhuzamosan az analog bemenetet. Én csak simán rákötöttem az 5v-ra a vevőt gondolom ez a gond. Viszont nem tudom mekkora ellenállást rakjak oda.
Nem tudom ez így érthető-e. Ha kell tudok képet linkelni csak most telefonról írok.

Ui: A vevő típusa egyébként BPW41N
(#) wbt válasza foto_dioda hozzászólására (») Júl 29, 2017 /
 
Használtam ilyet, a felhúzó ellenállás 3.3-10k között volt jó, igaz, én ST bemenetre kötöttem. Ha pl. távolságmérőnek akarod használni, akkor a környezeti fénytől igen csak le kell árnyékolnod, elég érzékeny.
(#) berkesandor hozzászólása Júl 29, 2017 /
 
https://www.aliexpress.com/item/SIM800L-GPRS-GSM-Module-SIM-Board-Q...UqEHtH
Ez a fajta GSM modulom van, ezt szeretném altatni, de sehogy sem jön össze.
Van valakinek tapasztalata ezzel kapcsolatban?

https://github.com/VittorioEsposito/Sim800L-Arduino-Library-revised...sues/4
Itt a DTR láb változását írja a könyvtár szerzője, de nekem nincs olyan kivezetve.
Vegyek másik modult (amin ki van vezetve)?
(#) foto_dioda válasza wbt hozzászólására (») Júl 29, 2017 /
 
És szerinted analog bemenethez is működhetnek ezek az értékek?
(#) tbarath válasza foto_dioda hozzászólására (») Júl 29, 2017 /
 
Analóg bemenetnél te döntöd el, hogy mit tartasz 1-nek és mit 0-nak, digitálisnál a mikrót tervező mérnökök ezt már eldöntötték korábban.

Szerk:
Itt 10k a pullup, Link
Itt 10k a pullup, Link

Egyébként simán próbálkozással is nézheted, miközben analóg bemeneten figyeled a jelet
A hozzászólás módosítva: Júl 29, 2017
(#) foto_dioda válasza tbarath hozzászólására (») Júl 29, 2017 /
 
Viszont ebben IC is van.
Én ilyenre gondoltam.
Vagy ilyenre csak 1db IR LED-el.
(#) wbt válasza foto_dioda hozzászólására (») Júl 29, 2017 /
 
Biztosan működik analóg módon, nekem azért kellett ST-t külön beraknom (nekem digit jel kellett). Hogy a kívánt fényteljesítménynél milyen ADC értékeket kapsz, megjósolni sem tudom, csak a próba segít.
(#) tbarath válasza foto_dioda hozzászólására (») Júl 29, 2017 /
 
Komparátorként használ egy 35 Ft-os opamp-ot. Bár erre nincs erre szükséged, maga az elv ugyanaz. Az opamp helyett mehet a jel az analóg inputodra, aztán majd ott sw-ből vizsgálod.
(#) TavIR-AVR válasza tbarath hozzászólására (») Júl 29, 2017 /
 
Az AVR bemenete analog oldalon soros 10k-t jelent, ha a belső felhúzó be van kapcsolva: ~80...120k.

Komparátorok esetén ezek jóval kezdvezőbb értékek, így a BPW-n is kedvezőbb feszültségértékek jelennek meg (nem terhel be jelentőssen az OPAMP, míg az AVR igen!)
Az AVR analog lábán meg _mintavételezés_ van, nem folyamatos mérés!
(#) tbarath válasza TavIR-AVR hozzászólására (») Júl 29, 2017 /
 
Ma is tanultunk valamit. Köszönöm!
(#) foto_dioda hozzászólása Júl 30, 2017 /
 
Köszönöm a segítséget mindenkinek.
Sikerült megcsinálni egy 100KΩ-os potival megoldottam. Csupán jó helyre kellett bekötni.
(#) foto_dioda hozzászólása Júl 31, 2017 /
 
Újabb kérdésem lenne.
Definiált kimenetre meg lehet adni, hogy 3.3V-ot adjon ki?
Illetve azt is meg szeretném kérdezni, hogy mikor használjuk a pinMode, int, define parancsot definiáláshoz?
A hozzászólás módosítva: Júl 31, 2017
(#) tbarath válasza foto_dioda hozzászólására (») Júl 31, 2017 /
 
"Definiált kimenetre meg lehet adni, hogy 3.3V-ot adjon ki?"
Az alapvetően 5V-os arduino csak PWM-et tud, azaz 0-5V közötti négyszögjel változó kitöltéssel.

"mikor használjuk a pinMode, int, define parancsot definiáláshoz?"

pinmode: adott pin kimenet, bemenet vagy bemenet felhúzó ellenállással
int: nem parancs, hanem változótípus
define: nem parancs, konstanst definiálsz.
(#) gerleimarci válasza foto_dioda hozzászólására (») Júl 31, 2017 /
 
Ha egyirányú kommunikációra akarod használni, akkor egy egyszerű feszültségosztóval megoldhatod.
(#) atus1981 hozzászólása Júl 31, 2017 /
 
Sziasztok!
ESP-01-el megoldható I2C buszon eeprom használat? Tapasztalat van, hogy mekkorát tud kezelni?
Köszi!
(#) kapu48 válasza atus1981 hozzászólására (») Aug 1, 2017 /
 
Bocsi!
Mi lenne ha beírnád a Googleba: ESP-01+I2C eeprom
És válogathatsz a lehetőségek között!

Pl. ez: Bővebben: Link
A hozzászólás módosítva: Aug 1, 2017
(#) berkesandor hozzászólása Aug 1, 2017 /
 
Külső megszakítást szeretnék alkalmazni.

  1. attachInterrupt(0, wakeUp, LOW);

Ezt a sort használom. A wakeUp() lefutása után , nem térek vissza a loop-ba, hanem egy másik függvényt szeretnék futtatni. A megszakítást DS3231 RTC adja.
  1. detachInterrupt (0);
  2. noInterrupts ();


Paranccsal indítom a függvényt, de a delay továbbra sem "működik".
Mi az oka ennek, mit rontok?
Ha visszatérek a loop-ban minden működik.
(#) KoblogPerGyok válasza berkesandor hozzászólására (») Aug 1, 2017 /
 
Üdv!

Interrupton belül ne használj delay()-t. Ha mindenképpen kell késleltetés, akkor millis(), vagy micros() egy ciklussal.
(#) berkesandor válasza KoblogPerGyok hozzászólására (») Aug 1, 2017 /
 
De ha, másik függvénybe lépek át, miért nem működik?
Rosszul csináltam valamit?
(#) berkesandor válasza KoblogPerGyok hozzászólására (») Aug 1, 2017 /
 
  1. volatile int state = LOW;
  2.  
  3.  int i = 1;
  4.  
  5. void setup()
  6.  
  7. {
  8. Serial.begin(9600);
  9.   //LED a D13 kivezetesen
  10.   pinMode(13, OUTPUT);
  11.     //D3 GND fele nyomogomb (opcio!)
  12.   pinMode(3,INPUT);
  13.     //D3 belso felhuzoellenallas (opcio!)
  14.   digitalWrite(3, HIGH);
  15.     //Megszakitaskezeles
  16.   attachInterrupt(1, aaaa, CHANGE);
  17.   int i = 1;
  18. }
  19.  
  20. void loop()
  21. {   //valami fontos, idoigenyes
  22.   delay(2000);
  23.  Serial.println (i);
  24.  i++;
  25.  if ( i% 10 == 0)
  26.   { osszeg(); }
  27. }
  28.  
  29. void aaaa()
  30. {   //allapotvaltozas
  31.   state = !state;
  32.     //D13 LED kezelese
  33.   digitalWrite(13, state);
  34. }
  35.  
  36. void osszeg()
  37. {
  38.   for ( int  a ; a <10 ; a++)
  39.   {
  40.   digitalWrite(13, HIGH);
  41.   delay(200);
  42.   digitalWrite(13, LOW);
  43.   delay(200);
  44.   }
  45. }


Ebben a programban ciklusonként villogtatja a ledet, csak nem értem, itt miért működik a delay() a RTC-s interrupts-ban meg miért nem.
(#) tbarath válasza berkesandor hozzászólására (») Aug 1, 2017 /
 
Itt nem delay-ezel interrupt-on belül, azért működik
(#) KoblogPerGyok válasza berkesandor hozzászólására (») Aug 1, 2017 /
 
Szerintem igen, de nem látom a kódod.
Itt már megmutattad korábban?
(#) berkesandor válasza KoblogPerGyok hozzászólására (») Aug 1, 2017 /
 
Kós az RTC vel:
  1. #include <Sleep_n0m1.h>
  2. #include <Wire.h>
  3. #include <RTClibExtended.h>
  4. //#include <LowPower.h>
  5. RTC_DS3231 RTC;
  6.  
  7.  
  8. Sleep sleep;
  9.  
  10. #define intPin 2
  11.  
  12. byte AlarmFlag = 0;
  13.  
  14. void setup()
  15. {
  16.  
  17. Serial.begin(9600);
  18. //pinMode(ledPin, OUTPUT);
  19.  
  20.   Wire.begin();
  21.   RTC.begin();
  22.   RTC.adjust(DateTime(__DATE__, __TIME__));   //set RTC date and time to COMPILE time
  23.  
  24.   RTC.armAlarm(1, false);
  25.   RTC.clearAlarm(1);
  26.   RTC.alarmInterrupt(1, false);
  27.   RTC.armAlarm(2, false);
  28.   RTC.clearAlarm(2);
  29.   RTC.alarmInterrupt(2, false);
  30.  
  31.   RTC.writeSqwPinMode(DS3231_OFF);
  32.  
  33.   RTC.setAlarm(ALM1_MATCH_HOURS, 4, 21, 0);   //set your wake-up time here
  34.   RTC.alarmInterrupt(1, true);
  35.   attachInterrupt(0, wakeUp, LOW);
  36. }
  37.  
  38. void loop()
  39. {
  40.  
  41.   delay(100); ////delays are just for serial print, without serial they can be removed
  42.  
  43.   Serial.println (millis());
  44.   Serial.println("execute your code here");
  45.  
  46.   Serial.println("Sleeping Till Interrupt");
  47.  
  48.   delay(2000); //delay to allow serial to fully print before sleep
  49.  
  50.   //sleep.pwrDownMode(); //set sleep mode
  51.  
  52.  
  53.  Serial.println (millis());
  54.  Serial.println("      ");
  55. }
  56.  
  57. void wakeUp()        //********************************************************************
  58. {
  59.  
  60. detachInterrupt (0);  
  61. noInterrupts ();
  62. ebren();
  63.  
  64. }
  65.  
  66. void ebren()  //***********************************************************
  67.  
  68. {
  69.  
  70. Serial.println("AAA");  
  71. Serial.println (millis());
  72. delay (2000);
  73. Serial.println("AAA");
  74. delay (2000);
  75. Serial.println("AAA");
  76. delay (2000);
  77. Serial.println("AAA");
  78. Serial.println (millis());
  79. Serial.println("      ");
  80.  
  81. }
(#) berkesandor válasza berkesandor hozzászólására (») Aug 1, 2017 /
 
  1. #include <Sleep_n0m1.h>
  2. #include <Wire.h>
  3. #include <RTClibExtended.h>
  4. //#include <LowPower.h>
  5. RTC_DS3231 RTC;
  6. int eber = 0;
  7.  
  8. Sleep sleep;
  9.  
  10. //#define intPin 2
  11.  
  12. //byte AlarmFlag = 0;
  13.  
  14. void setup()
  15. {
  16.  
  17. Serial.begin(9600);
  18. //pinMode(ledPin, OUTPUT);
  19.  
  20.   Wire.begin();
  21.   RTC.begin();
  22.   RTC.adjust(DateTime(__DATE__, __TIME__));   //set RTC date and time to COMPILE time
  23.  
  24.   RTC.armAlarm(1, false);
  25.   RTC.clearAlarm(1);
  26.   RTC.alarmInterrupt(1, false);
  27.   RTC.armAlarm(2, false);
  28.   RTC.clearAlarm(2);
  29.   RTC.alarmInterrupt(2, false);
  30.  
  31.   RTC.writeSqwPinMode(DS3231_OFF);
  32.  
  33.   RTC.setAlarm(ALM1_MATCH_HOURS, 17, 21, 0);   //set your wake-up time here
  34.   RTC.alarmInterrupt(1, true);
  35.   attachInterrupt(0, wakeUp, LOW);
  36. }
  37.  
  38. void loop()
  39. {
  40.  
  41.   delay(100); ////delays are just for serial print, without serial they can be removed
  42.  
  43.   Serial.println (millis());
  44.   Serial.println("execute your code here");
  45.  
  46.   Serial.println("Sleeping Till Interrupt");
  47.  
  48.   delay(2000); //delay to allow serial to fully print before sleep
  49.  
  50.   //sleep.pwrDownMode(); //set sleep mode
  51.  
  52.  
  53.  Serial.println (millis());
  54.  Serial.println("      ");
  55.  if (eber == 1)
  56.   {ebren();}
  57. }
  58.  
  59. void wakeUp()        //********************************************************************
  60. {
  61.  
  62. detachInterrupt (0);  
  63. noInterrupts ();
  64. eber = 1 ;
  65.  
  66. }
  67.  
  68. void ebren()  //***********************************************************
  69.  
  70. {
  71.  
  72. Serial.println("AAA");  
  73. Serial.println (millis());
  74. delay (2000);
  75. Serial.println("AAA");
  76. delay (2000);
  77. Serial.println("AAA");
  78. delay (2000);
  79. Serial.println("AAA");
  80. Serial.println (millis());
  81. Serial.println("      ");
  82.  
  83. }


Így megy, ha loop-ból lépek oda. Csak nem értem miért...
(#) KoblogPerGyok válasza berkesandor hozzászólására (») Aug 1, 2017 /
 
Elvileg lehetséges másik függvényt hívni interruptból, de csak olyat érdemes ami rövid időt igényel.
Legalábbis egyelőre ezt tudtam meg ennyi idő alatt. A delay(2000) nem lesz ok szerintem. Az első példádban(Nekem eddig az nem jelent meg, módosítottad?)

void aaaa()
{   //allapotvaltozas
  state = !state;
    //D13 LED kezelese
  digitalWrite(13, state);
}

Nem látok más függvény meghívást, de este van.

Szerintem akkor jársz a legjobban, ha felveszel egy volatile byte változót, majd az interruptban annak értékét beállítod false-ra. (setupban meg true) A loop()-ot átalakítod, hogy ha ez true akkor az a rész fusson ami eddig is van, az else ágban pedig meghívod az ebren() függvényt.
(#) berkesandor válasza KoblogPerGyok hozzászólására (») Aug 1, 2017 /
 
Közben rátaláltam, bár a volatile kimaradt.
Köszönöm, a segítséget.
(#) KoblogPerGyok válasza berkesandor hozzászólására (») Aug 1, 2017 /
 
Komolyan mondom engem ugrat a browserem.

Több hozzászólás mintha megváltozott volna, illetve megviccel kicsit, hogy majdnem egy időben írtunk. A hozzászólásom elküldése előtt pl. még nem láttam a másik kódodat, arra nem is tudtam reagálni. Meleg is van este is szerintem kipihenem magam!
(#) atus1981 válasza kapu48 hozzászólására (») Aug 1, 2017 /
 
Igen, köszi!
Pont nem az RTC érdekel, mint a linkedben szerepel, hanem az eeprom....
Csak 4 napja keresgélem.
(#) tbarath válasza atus1981 hozzászólására (») Aug 2, 2017 /
 
google://ESP-01+eeprom
About 157,000 results

Az első github találat eprom olvasást tartalmaz...
(#) kapu48 válasza atus1981 hozzászólására (») Aug 2, 2017 /
 
Csak össze kel hoznod a kettőt, 1 projectbe:
Using Arduino with an I2C EEPROM
Bővebben: Link

ESP8266/Arduino/libraries/Wire/
Bővebben: Link
Következő: »»   369 / 845
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