Fórum témák

» Több friss téma
Fórum » Arduino
 
Témaindító: groening, idő: Szept 28, 2008
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   554 / 640
(#) Massawa válasza Massawa hozzászólására (») Szept 16, 2019 /
 
Bocs nem tudom miért irtam printmodet.
Szoval
pinMode(esense, INPUT)
pinMode(wsense,OUTPUt)


Közben már sikerült pár lépéssel tovább lépnem, és alakulgat a kode.

Kösz a segitséget.
(#) sargarigo válasza Massawa hozzászólására (») Szept 16, 2019 /
 
Namost nem tudom mi a gond, de leírom ahogy írtad:
  1. Int valA0=analogRead (DIR);
  2. Int valA2=analogRead (Occup);
  3. if (ValA0 < 500)
  4. {
  5.   pinMode(esense, INPUT);
  6.   pinMode(wsense, OUTPUT);
  7. }
  8. Int valA0=analogRead (DIR);
  9. Int valA2=analogRead (Occup);
  10. if (ValA0 > 500)
  11. {
  12.   pinMode(esense, OUTPUT);
  13.   pinMode(wsense, INPUT);
  14. }

Valami ilyesmire gondoltál?
(#) Massawa válasza sargarigo hozzászólására (») Szept 16, 2019 /
 
Kösz igy irtam meg én is, csak még valahol nem ott van, ahol lennie kell. A fenti sorokat a loopba tettem. A 6. sor után még be kell olvasnom az esense értékét, (int val8=digitalRead(esense); illetve 13. sor után után a wsense értékét (int val9=digitalRead(wsense); majd ezek a valA0-val illetve a valA2vel határozzák meg a 6 státusz egyikét, azaz e 4 változo határozza meg valamelyik státuszt. A statuszok jok, azokat kiprobáltam A0,A2,A3 és A4 bemenetekkel). Sajnos a progi még valami hibát jelez, és még nincs annyi tapasztalatom, és a hibajelzés sem egyöntetü. Majd holnap folytatom, lehet, hogy elindul.
(#) Massawa válasza Massawa hozzászólására (») Szept 17, 2019 /
 
Sikerült befejeznem a progit (vagy 500 sor) és müködik. Kösz mindenkinek a segitséget!
(#) dudzsi hozzászólása Szept 18, 2019 /
 
Sziasztok! Egy kis segítséget szeretnék kérni. Adott egy arduino uno „késöbb nano” relé modul egy mikrokapcsoló végállásnak „késöbb reed” és egy levegő szelep amit két AC 24V tekercs kapcsol. Megírtam a programot ami asztalon tökéletesen működött addig amíg a AC 24V nem került bekötésre. Sajnos a két tekercsnek a vezetékei és a végállás kapcsologegy kötegbe megy 5X0,75”. Próba során random módon különböző hibákat csinált. Pl.:olyan helyen érzékelte a végállást ahol nem kellet volna, nem ment magától vissza a végállásba csak akkor ha folyamatosan nyomtam a gombot. Először arra gyanakodtam hogy összeszed valamit a 24V kapcsolgatásakor. Ezért a végállást alapba földre huzam”nyitott kapcsoló” és zárt állapotba 5V. De így is produkálta. Gyanús lett hogy olyan dolgot nem csinál amit minden körülmények között meg kellet volna tennie. A program nagyon egyszerű. Setupba van egy ellenőrzés hogy nyomva van e a végállás, ha igen az érték 1 ha nem 0. Ezután belép a Loopba ahol a működtető kapcsoló megnyomásával meghúzza a relét és a szelep működik, ha elengedem akkor relét vált és vissza tér alap helyzetbe. Beraktam egy ledet, Setupba be írtam hogy ha végállás 1 akkor világítson ellenkező esetbe ne. És itt jött a meglepetés. Ha úgy indult hogy nem világított akkor ez első vagy második végállás érzékelés után elkezdett világítani. Kiderült hogy mindig újraindul az Andurio és akkor már lehet olyan állapot hogy 1-re vált. Ezt csak akkor csinálja ha a tekercseket működteti. Létezik az hogy a bemenet kap egy feszültség löketet és ettől újra indul? Sokkal gyorsabban csinálja az újraindulást mint ha a resetet nyomnám. Egy pillanatra látni, hogy kikapcsol a led. Elég lenne egy rc tag a 24V-hoz vagy a végállás kapcsolot kellene leválasztani pl: opto? Eőre is köszönök minden javaslatott segitséget. Bocsi ha hosszú lett
(#) Kera_Will válasza dudzsi hozzászólására (») Szept 18, 2019 /
 
Tipikusan a mindig elfelejtett ki és bementi portok védelmének a hibájába estél bele.

OPTO CSATOLÓ ki és bemenet oldalon, hosszú drótokra nem lógatjuk a uC lábát ....stb.
A uC FÜGGETLEN tápról járjon ami STABIL és nem rángatja a 24V relé.
Ilyen apróságok....
(#) dudzsi válasza Kera_Will hozzászólására (») Szept 18, 2019 /
 
Van egy 24V trafó ami csak a mágnestekercsek megtáplálására szolgál. Van egy 220v/12V led táp ami a relémodul tápja "12V-os relék"és ugyan innen egy LM7805 modul csinálja a uC stabil tápját. Az tény hogy a végállás kapcsoló 5mvezeték végén van és ugyanabba a kötegbe megy a 24V is. De a hiba csak akkor van ha a tekercsek müködnek. Akkor érdemes lenne közel a uC-hez csinálni egy leválasztást pl optot? Vagy mivel lehet még leválasztani?
(#) _BiG_ válasza dudzsi hozzászólására (») Szept 18, 2019 /
 
A tekercsekkel párhuzamosan nincs szupresszor? Mert az induktív visszarúgásokat nem szereti semmi sem...
(#) dudzsi válasza _BiG_ hozzászólására (») Szept 18, 2019 /
 
Nincs. Egy RC-tag is jó lenne?
(#) Kera_Will válasza dudzsi hozzászólására (») Szept 18, 2019 /
 
Idézet:
„uC-hez csinálni egy leválasztást pl optot?”

Igen ezt se ártana.
A uC portja max 2 3 centi vezetéken legyen rákötve az optocsatoló tranzisztorára.A port külső pár kiloohmos ellenálláson keresztül legyen felhúzva uC + tápágára.A bemenő portot hidegítsd pár 1-10nanos kondival
Ha eddig magas H szintre működött a progiban a végállás akkor most "aktív L-re" fog ... softvert módosítani szükséges ... persze csak akkor ha fordulna a logika a felhúzott port miatt.
Az optocsatoló ledjével sorba köthetsz egy másikat pl zöld/kék is így sokkal nagyobb feszültséggel nyitnak és visszajelzésed is lesz a kontaktusok, végálláskapcsoló állapotáról. Viszonylag nagy áram haladjon át rajtuk 5-10 mA. Így már kevésbé fogja az induktív relé tekercs rúgások zavarni a portot.
Az opto ledjét NE a uC 5 Voltjáról tápláld!

A relék tekercseivel párhuzamos antiparalel dióda tompítja a feszültség tüske egyik periódusát , supressor mindkettőt tudja vagy 2 szembekötött 30V köröli zener dióda is hasonlót tud.
Idézet:
„220v/12V led táp”
kapcsoló üzemű vagy analóg ?
Kapcsoló üzemű esetben plussz C L C szűrők a tápágba nem hátrányosak.
Relék kontaktusaival párhuzamosan kötött soros R C tagok pár 100 ohm és pár 10n .
A hozzászólás módosítva: Szept 18, 2019
(#) dudzsi válasza Kera_Will hozzászólására (») Szept 18, 2019 /
 
Igen kapcsoló üzemű. A pár kiloomosnak a 10K az gondolom jó? A hidegítő kondit ezzel az ellenállással kell párhuzamosan kötni?
Én arra gondoltam hogy az opto ledjét a 12V-ról táplálnám. Akkor 910-1k ellenállás jó lenne?
A szembekötött zenernél a két katod néz össze? A teljesitménye mekkora legyen?
(#) Kera_Will válasza dudzsi hozzászólására (») Szept 18, 2019 /
 
Hidegítő kondi a negatív és a uC és port közé nem plusz tápra .
Optocsatoló adatlapja eldönti a maximális led áramot ... 5 - 10 mehet rajta ...
(#) Massawa válasza dudzsi hozzászólására (») Szept 19, 2019 /
 
Még az is kérdéses, hova megy a végállás kapcsolo. Ha van mod akkor használd valamelyik analog bemenetet amire egy kondit is rakhatsz ami kiszüri a zavarokat. Ha digitális a bemenet akkor azon kezelni kell a végállás kapcsolo állapotát ( prellmentesités). A legegyszerübb ha többször beolvasod (5-10x 2-10 ms-ként) és csak akkor fogadod el, ha sorban 5-10 egyforma állapotot olvasol be. Persze az optobemenet meg a szürések is elengedhetetlenek.
(#) GPeti1977 válasza Kera_Will hozzászólására (») Szept 19, 2019 /
 
Ha nem is optocsatoló ahol nem indokolt, de egy 74HC541 nem árt portleválasztónak, ahol dolgozom a japán mérnökök mindig így készítették a tesztereket, sőt olyan is volt hogy csak a port felhúzóellenállását kapcsolgatták és 100kOhm ellenállásokkal volt lehúzva a port ezt erősítette az 540, vagy 541 buffer IC.
(#) dudzsi válasza Kera_Will hozzászólására (») Szept 19, 2019 /
 
Köszi. Hirtelen itthon K814P optot találtam, de csak egy darabot. Majd még beszerzek.
(#) glaci hozzászólása Szept 23, 2019 /
 
Sziasztok!
Szeretném arduinóval 89c2051 mcu-kba végrehajtandó programokat beírni. Bővebben: Link ezt találtam. Dolgozott màr valaki ezzel? Tud mondani tapasztlatot valaki? Vagy màs megoldás is érdekel.
(#) meddu hozzászólása Szept 24, 2019 /
 
Sziasztok!
Segitségre lenne szükségem.
van 8db nyomógomb 16db relé
az megvan hogy minden relé egy gombnyomásra 1 relét működtet. (on-off)

azt hogyan tudom leírni codba hogy minden nyomógombhoz 2db relé van hozzárendelve. ami úgy működne hogy minden egyes gombnál :
az első gombnyomásra meghúz az első relé
a másodikra elenged
a harmadikra meghúz a második relé
a negyedikre meg elenged.
állapottól függetlenül 90mp után visszaállna alapállapotba (az első gombnyomást várni).?
(#) Kera_Will válasza meddu hozzászólására (») Szept 24, 2019 /
 
Ennél a feladatnál a DELAY() mint időzítő függvény felejtős lesz!
millis() függvényt kell használnod mindenképpen!
Mert a delay() esetén nem fog csinálni semmit a proci csak vár.
Ha közben nyomsz 1 gombot nem fogja lekezelni csak ha letelt a legutolsó 90 sec.
Te pedig "bármikor" meg nyomnád bármelyik gombot , ezt kell lekezelnie a uC-nek.
(#) Massawa hozzászólása Szept 25, 2019 /
 
Egy kérdés:
Van egy i2c hálozatom ( most még csak 2 résztvevövel).
Az egyikböl olvasni kéne a bemeneteket a másikba kiküldeni.
Az olvasott egység cime 0x20, a cimzetté meg 0x39.
Egyenként tudom olvasni is meg irni is a modulokat, de ha berakom a void loopba akkor azt irja, hogy redefined address. Még kezdö vagyok az Arduino nyelvezetével igy fogalmam sincs hogyan kell ezt megoldani. Azt hittem ha a müködö iro meg olvaso kodokat berakom a loopba akkor az menni is fog.

Kösz!
(#) Kovidivi válasza Massawa hozzászólására (») Szept 25, 2019 1 /
 
Helló.
Van egy változód, amit rossz helyen definiálsz, mégpedig az, amelyikben az eszköz címét tárolod. Vedd ki a definíciót a loop-ból, mert az egymás után mindig lefut. Legyen a setup-ban, vagy csak simán minden függvényen kívül.
A loop-ban pedig csak értékadással változtasd a változó értékét, ne szerepeljen előtte semmi definíció.
A hozzászólás módosítva: Szept 25, 2019
(#) Massawa válasza Kovidivi hozzászólására (») Szept 25, 2019 /
 
Kösz, erre már gondoltam csak nem tudom megcsinálni.
Már probálkoztam a
int addressR = 0x20; // olvasando cim
int addressW = 0x39; // irando cim

A loopban még nem tudom hogyan kellene ezt elkülöniteni, mert a portokat is kapcsolni kellene (INPUT/OUTPUT). Ez nem megy még, és nem találok semilyen mintát ahol ilyen megoldás lenne.
Esetleg azt meg lehetne csinálni, higy az egyes modulokat elöre a loopon kivül fixen definiálni tudnám Inputra meg Outputra? Ezzel is rövidülne a loop.
A hozzászólás módosítva: Szept 25, 2019
(#) Kovidivi válasza Massawa hozzászólására (») Szept 25, 2019 1 /
 
Setupba: int addressR, addressW;

Loopba:
addressR = 0x20;
addressW = 0x39;

A definíciót a setupban, az értékadást a loopban. Nem tudom, de szerintem AMS programozásnál is ezt a logikát kell követni nem?
A hozzászólás módosítva: Szept 25, 2019
(#) Massawa válasza Kovidivi hozzászólására (») Szept 25, 2019 /
 
Ezt probáltam de erre mondja, hogy nem lehet változtatni a cimet.
igen az ASM-be ezt csinálnám, de itt valahogy nem tetszik neki.
Na mindegy megyek még tanulgatni.
(#) vargham válasza Massawa hozzászólására (») Szept 25, 2019 /
 
Másold be ide az egész sketch-et. Úgy könnyebb segíteni.
(#) Massawa válasza vargham hozzászólására (») Szept 25, 2019 /
 
  1. #include <Wire.h>
  2.  
  3. // Set I2C address
  4. int addressR, addressW ;
  5. int data; //input data
  6.  
  7. void setup()
  8. {
  9.   Wire.begin();
  10.   // Set all ports as output
  11. addressW = 0x39
  12.   pf575_write(word(B11111111,B11111111));
  13. addressR = 0x20
  14.   pf575_write(word(B00000000,B00000000)); // set all ports to input
  15. }
  16.  
  17. void loop()
  18. {
  19.  
  20. // ide kellene a beolvaso resz
  21. addressR = 0x20;
  22. // read Data
  23. Data=  pf575_read();
  24.  
  25. addressW=0x39
  26.   // Write data
  27.   pf575_write(Data));
  28.  
  29. }
  30.  
  31. // Function for writing two Bytes to the I2C expander device
  32. void pf575_write(uint16_t data)
  33. {
  34.   Wire.beginTransmission(address);
  35.   Wire.write(lowByte(data));
  36.   Wire.write(highByte(data));
  37.   Wire.endTransmission();


Sajnos most csak igy fejböl, mert egy masik gépen vagyok. A kode vége zavar egy kicsit, mert ott is konfliktus van, ha több cimmel dolgozok. (Wire.beginTransmission(address); ha csak egy cim van akkor müködik.

Kösz!
A hozzászólás módosítva: Szept 25, 2019
(#) Massawa válasza Massawa hozzászólására (») Szept 25, 2019 /
 
Na már sikerült egy mintakodot találni, de sajnos ebben is van hiba. Ráadásul képtelen vagyok a githubrol letölteni a jo pcf8574 könyvtárat. (Eltünt a download gomb).

Mindjárt az elején hibát jelez: (*****HIBA sorban)


  1. #include "jm_PCF8574.h"
  2. #include <Wire.h>
  3.  
  4. // adjust addresses if needed
  5. PCF8574 PCF_20(0x20)// add switches to lines  (used as input)
  6. PCF8574 PCF_39(0x39)// add LEDs to lines      (used as output) ******* HIBA
  7.  
  8. void setup()
  9. {
  10.   Serial.begin(115200);
  11.   Serial.println("\nTEST PCF8574\n");
  12.  
  13.   uint8_t value = PCF_20.read8();
  14.   Serial.print("#20:\t");
  15.   Serial.println(value);
  16.  
  17.   for (int i=0; i<255; i++)
  18.   {
  19.     PCF_39.write8(i);
  20.     delay(100);
  21.   }
  22.  
  23.   PCF_39.write(0, 1);
  24.   for (int i=0; i<7; i++)
  25.   {
  26.     PCF_39.shiftLeft();
  27.     delay(100);
  28.   }
  29.  
  30.   for (int i=0; i<7; i++)
  31.   {
  32.     PCF_39.shiftRight();
  33.     delay(100);
  34.   }
  35.  
  36.   for (int i=0; i<8; i++)
  37.   {
  38.     PCF_39.write(i, 1);
  39.     delay(100);
  40.     PCF_39.write(i, 0);
  41.     delay(100);
  42.   }
  43.  
  44.   for (int i=0; i<8; i++)
  45.   {
  46.     PCF_39.toggle(i);
  47.     delay(100);
  48.     PCF_39.toggle(i);
  49.     delay(100);
  50.   }
  51. }
  52.  
  53. void loop()
  54. {
  55.   // echos the lines
  56.   uint8_t value = PCF_20.read8();
  57.   PCF_39.write8(value);
  58.   delay(100);
  59. }
  60. //
  61. // END OF FILE
  62. //
(#) Massawa válasza Massawa hozzászólására (») Szept 25, 2019 /
 
Közben kiderült, hogy többféle PCF8574.h könyvtár van. Sajnos egyikkel sem megy a mintaprogram: most az 56. sorral van gond. Azt irja, hogy a

Class PCF8574 has no member named ´read8´

Érdekes délelött olvaso meg iro programokat probáltam, ott nem volt gond a PCF8574.h koddal és vagy 3-t sikerült müködésre birni a LEDek villognak a kapcsolok müködnek, csak nem egyszerre.
Már kiprobaltam vagy 3-t. Az utolso kettö egyöntetüen a fenti hibát hozza az 56. sorban ( tehat nem a jm_PCF8574.h, mint a berakott mintán.)
(#) proba válasza Massawa hozzászólására (») Szept 25, 2019 /
 
Arduinónál mintha az a logika lenne, létrehozol két külön egységet az inicializáló részben, különböző init értékekkel, ez után csak ezekre az egységekre hivatkozol a főprogramban. Nem a címeket kell átírni üzem közben.
(#) Massawa válasza proba hozzászólására (») Szept 25, 2019 /
 
Kösz, pechemre egy rossz kodot találtam, legalábbis képtelen voltam müködésre késztetni. A végén már a kodban nem volt hiba de kiirta, hogy nem tudja NANOra kompilalni. Az utolso remény volt egy másikat találni és szerencsém volt, egy másik kod az elsöre megy már 12 LEDdel meg 4 kapcsoloval. Holnap megprobálom azt tovább fejleszteni.
(#) Bell hozzászólása Szept 28, 2019 /
 
Sziasztok!
Van néhány újabb kínai Lenardóm, pro micróm ATmega32U4-vel, amik nem hajlandóak együttműködni az NRF2401L+ modullal.
Nem jelenítik meg a printDetails()-t és persze nem működtetik a rádiót se.
Régi alaplap viszont megjeleníti a részleteket, a működést nem tudtam ellenőrizni, mert nincs belőle másik.
Az a kérdésem, hogy át lehet-e írni a processzor tartalmát, ki lehet-e javítani ezt a hibát?
Következő: »»   554 / 640
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu