Fórum témák
- • Műhelyünk felszerelése, szerszámai
- • Audiofil, High End Audio
- • GSM adatátvitel
- • Klíma szervizelés, javítás
- • Videoton RT7300S
- • Mosógép vezérlők és általános problémáik
- • Energomat mosógép
- • Akkumulátor töltő
- • Villanyszerelés
- • Bluetooth kérdések
- • Alternativ HE találkozó(k)
- • Mosogatógép hiba
- • Vezeték nélküli csengő más célra
- • Felajánlás, azaz ingyen elvihető
- • CNC építése házi alkatrészekből az alapoktól
- • V-FET és SIT erősítő kapcsolások
- • Hegesztő inverter javítás
- • EL84 kimenő trafó
- • Magnetométer építése
- • Elektromágneses terek kockázatértékelése
- • MyElecParts alkatrész kereső és készlet nyilvántartó
- • Rádió áthangolása, OIRT - CCIR konverter
- • Porszívó javítás
- • Kombikazán működési hiba
- • Kapcsolóüzemű tápegység
- • Vicces - mókás történetek
- • Riasztószerelés tapasztalatok, ötletek (kizárólag haladóknak)
- • Erősítő mindig és mindig
- • Kávéfőzőgép hiba
- • Muzeális készülékek-alkatrészek restaurálása
- • Vag-com-hex interfész (kábel hibák)
- • Kamerás megfigyelőrendszer
- • Hangsugárzó építés, javítás - miértek, hogyanok
- • TV hiba, mi a megoldás?
- • Mágnes
- • Szintetizátor javítás
- • Házilag építhető fémkereső
- • Villanypásztor
- • Takarítógép problémák
- • Autóelektronika
- • Kapcsolóüzemű táp 230V-ról
- • LED-es kivezérlésjelzők
- • Tranzisztorok helyettesítése
- • Adatlapot keresek
- • Elfogadnám, ha ingyen elvihető
- • VU meter probléma
- • Vásárlás, hol kapható?
- • Kaputelefon
- • Labortápegység készítése
- • Elektronyika orosz digitális órák
- • Műterhelés építése
- • Boombox javítás
- • Mobiltelefon hiba
- • Set-top-box
- • Inverter készítése
» Több friss téma
|
A klónok CH340 Soros-USB illesztőjének drivere ( Letöltés)
Végül is igazad van,hőszivattyút akarok vezérelni,ott nem túl gyorsak a folyamatok. A billentyű it. majd csak az adatot adja át a loop-nak,a többi it. kell a hő,nyomás szenzorokhoz ha valami határértéket átlépnek,ott viszont gyorsnak kell lenni.Egyébként kösz,tanuló félben vagyok,most talán egy darabig elleszek.
Nekem megvan az Arduino 1.6.5-r5, 1.6.7, 1.6.8, 1.6.9, 1.6.11, 1.6.12, 1.6.13 de az LCD kijelző csak az 1.6.5-r5-el működik normálisan.
Azzal nem lesz gond, időzítésben nincs nagy igénye.
Szuksegem lenne egy kis segitsegre az alabbi kodba.
Nem igazan telyesen Arduino, csak a felulet amivel feltoltom (legyetek elnezoek ezert).
Az a gondom van hogy a 62-65 -odik sorokba a progi beolvassa (beazonositja) a neten jovo valaszt a bongeszotol.
Arrol van szo hogy a „request.indexOf” allitolag csak az elso karakterek kozott keres. Ha van valami mas a keresett reszlet elott, mint a 89-90 -edik sorba akkor mar nem ismeri fel a „LED15=ON”.
A kerdesem az lenne hogy van megoldas arra hogy amikor a proci ertelmezi a valaszt, akkor nezzen at a keresett reszlet elotti reszen, „LED1&” reszen es hogy a lancbol tudja kiszurni azt a reszletet ami erdekli, ha azzal kezdodik, ha nem azzal kezdodik a karakterlanc.
Megjegyzem, mar probaltam azt a helyzetet amikor utanairom es akkor mukszi, mintha nem is lenne.
Koszonom.
elfelejtettem, az lenne a cel hogy egyszerre tobb adatot dogozzon fel a proci.
Sziasztok!
Arduinoval hogy tudok n-edik gyököt számolni?
Az sqrt-t ismerem, de az csak négyzetgyök (vagy nem?)
Hmm, ez megoldodott, csak a keresett reszlet elol ki kelett vennia „/” jelt (karaktert).
Szia!
Az sqrt az négyzetgyök. Ha magasabb fokú gyököt akarsz, akkor hatványozz!
Pl. negyedik gyök alatt 30 az pow(30, 1/4), azaz harminc az egynegyediken.
Itt egy példa makró hozzá
#define root(number, n) pow(number, 1.0/n);
double gyok = root(64, 4); // 64 negyedik gyöke
A hozzászólás módosítva: Jan 6, 2017
Szia. Én is hasonlóképpen csináltam az ilyet. Az nem számít, ha a keresett karakterek előtt van más is, akkor csak azoknak a karektereknek a számával többet ad vissza az indexOf függvény. De az ebből a szempontból mindegy. A lényeg, hogy tartalmazza.
Én így oldottam meg a napelem vezérlőmnél:
else if (eth_nyers.indexOf("aktiv_be")>0){
Koszi. Eddig bejott. Ezutan jon a nehezebb, mert ertekeket is kene allitani. Vagyis amikor jon a vallasz hogy „value=15” akkor mifelekeppen olvasom be azt a 15-ot, vagy akarmennyit amit utana int-kent kellene tovabb hasznalni.
Esetleg erre van otleted ? Egy hasznos link ?
sscanf?
Ilyesmire gondolok:
char *a = "value=15";
char nev[10];
char ertek[5];
int ertek_szam = 0;
sscanf(a,"%[^=]=%s", nev, ertek);
Serial.println(nev); // value
Serial.println(ertek); // 15
sscanf(a,"%[^=]=%d", nev, &ertek_szam);
Serial.println(nev); // value
Serial.println(ertek_szam); // 15
Beprobalgatom valahogy, habar nem igazan ertem.
Azt hiszem nem fejeztem ki magam igazan. Akkor most leirom telyesen.
Szoval, nekem bejon a kovetvezo sor (request): „GET /?adat=Szunet&bool=true&ora=00&min=00”.
Ebbol eloszor azonositom a „Szunet” adatot (szot), ha ez megvan akkor ki kell olvassam tovabb, kulon-kulon, az egyenloseg jelek utani ertekeket es azokat kell hasznositsam.
Vagyis beazonositom a „bool=” adatot, utana meg kiolvasom a true, vagy false erteket, ami igazan lehetne 1 es 0 (ezt meg megoldom asszem). Utana tovabb ha beazonositottam az „ora=” adatot akkopr be kelle olvassam az utana kovetkezo ket szamjegyet, eltaroljam int-be es igy tovabb a „min=” ...
Eddig probalgattam az Arduino lapka + ESP8266 serial AT megoldassal, de nem mukszi. A hozzászólás módosítva: Jan 7, 2017
Mondjuk megoldhatnam ugy is hogy egyenkent beazonositom, ha „ora=00” akkor „value=0”, ha „ora=01” akkor „value=1”, ha „ora=02” akkor „value=2” es igy tovabb, de ez tul gagyi lenne.
Bocsi, nem gondoltam, hogy ilyen bonyolultságúra gondolsz.
Ez hogy tetszik?
int parseQueryString(char *queryString, char *results[][2], int maxResult) {
int ct = 0;
while (queryString && *queryString && ct < maxResult) {
results[ct][0] = strsep(&queryString, "&");
results[ct][1] = strchrnul(results[ct][0], '=');
if (*results[ct][1]) *results[ct][1]++ = '\0';
ct++;
}
return ct;
}
void setup() {
Serial.begin(9600);
}
void loop() {
char buf[100];
char *params[5][2];
int rc = parseQueryString("adat=Szunet&bool=true&ora=00&min=00", params, 5);
Serial.print("Parameterek: ");
Serial.print(rc);
Serial.println();
for (int i = 0; i < rc; i++) {
Serial.print("Parameter ");
Serial.print(i);
Serial.print(" Nev \"");
Serial.print( params[i][0]);
Serial.print("\", ertek \"");
Serial.print( params[i][1]);
Serial.print("\".");
Serial.println();
}
Serial.println();
while(1);
}
queryString: A query string
results: A tömb amibe a paramétereket várod
maxResult: Hány elem fér max a tömbbödbe A hozzászólás módosítva: Jan 7, 2017
Hu, lessz mit ragodjak rajta, de nekiallok.
Azt hittem, hogy nem az esp-t programozza, hanem az össze van kötve az arduinoval és AT parancsokkal vezérli.
Igen egy NodeMcu lapkaval babralok - ilyennel.
Sokat kerestem mar a megoldast, de most azt hiszem ratalaltam, vargham linkje cime es guggli bacsi segitsegevel, ITT
Mindenfele keppen Koszonom a hozzaallasotokat. A kod reszleteket amiket Pethical kuldott majd kesobb, az irodai munka kozbe attanulmanyozom. A hozzászólás módosítva: Jan 7, 2017
Az más, akkor félreértettem a dolgot. Ebben az esetben az én kódom felesleges a számodra, de persze használható, de nem jobb, mint a "gyári" lib.
Ez akkor jó, ha nem használsz wifi, vagy ethernet könyvtárat és úgy kell query paramétereket parsolnod, pl. ha GPRS modemen keresztül netezel az mc-vel, vagy AT parancsokkal wifizel, vagy hasonló...
Sziasztok!
Adott két UNO.
Az 1. számú, egy fet segítségével tudja bekapcsolni a 2. számú arduinot.
A 2. sz. arduino Vin-je +5V-ra van kötve, a GND-je pedig a FET D lábára.
Ezen kívül az 1. sz. uno 13. pinje, a másik uno 3. pinjével van összekötve.
Azt tapasztalom, hogy a 2. sz. uno a fet bekapcsolása nélkül is bekapcsol.
Lehetséges, hogy a 2. sz. uno 3. pin-en keresztül záródik az áramkör.
Ha igen, hogyan lehet ezt elkerülni?
Előre is köszi a segítségért!
A biztos megoldás az, ha galvanikusan elválaszod a kettőt egymástól, már ami az összekötéseket illeti (13. pin <---> 3. pin).
Inkább oldd meg a dolgot egy Arduinoval, vagy a második Ardu kapjon fix tápot, és a program akkor induljon, amikor te akarod. Ez a fet-es gnd megszakítés egyáltalán nem jó ötlet.
Optocsatoló jó megoldás, azzal hajtod, amivel szeretnéd (tranzisztor, FET). Egyébként Kovidivi javaslatait is érdemes figyelembe venni.
Köszi!
Sajnos muszáj a két arduino, és nincs hálózat, úgyhogy fontos aminél kisebb fogyasztás, úgyhogy ki-be kell kapcsolnom. Esetleg külön tápot kap majd a két mcu.
Alvó üzemmódot nem ismered?
Próbálom kerülni, nincsenek túl jó tapasztalataim vele. Szerintem kevés az ismeretem hozzá.
mindig valami gubanc lett a vége, úgyhogy inkább mellőzném.
Sziasztok!
Bináris órát szeretnék építeni, de elakadtam.
int h1 = 12;
int h2 = 11;
int h4 = 10;
int h8 = 9;
int m1 = 8;
int m2 = 7;
int m4 = 6;
int m8 = 5;
int m16 = 4;
int m32 = 3;
int hour = 0;
int minute = 5;
int sec = 0;
void setup() {
Serial.begin(9600);
pinMode(h1, OUTPUT);
pinMode(h2, OUTPUT);
pinMode(h4, OUTPUT);
pinMode(h8, OUTPUT);
pinMode(m1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(m4, OUTPUT);
pinMode(m8, OUTPUT);
pinMode(m16, OUTPUT);
pinMode(m32, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
void loop() {
delay(999);
sec++;
Serial.println(sec);
Serial.println(minute);
Serial.println(hour);
digitalWrite(h1, LOW);
digitalWrite(h2, LOW);
digitalWrite(h4, LOW);
digitalWrite(h8, LOW);
digitalWrite(m1, LOW);
digitalWrite(m2, LOW);
digitalWrite(m4, LOW);
digitalWrite(m8, LOW);
digitalWrite(m16, LOW);
digitalWrite(m32, LOW);
if (sec = 60) {
minute++;
sec = 0;
}
if (minute = 60) {
hour++;
minute = 0;
}
if (hour = 1) {
digitalWrite(h1, HIGH);
}
if (hour = 2) {
digitalWrite(h2, HIGH);
}
if (hour = 3) {
digitalWrite(h1, HIGH);
digitalWrite(h2, HIGH);
}
if (hour = 4) {
digitalWrite(h4, HIGH);
}
if (hour = 5) {
digitalWrite(h1, HIGH);
digitalWrite(h2, HIGH);
}
if (hour = 6) {
digitalWrite(h2, HIGH);
digitalWrite(h4, HIGH);
}
if (hour = 7) {
digitalWrite(h1, HIGH);
digitalWrite(h2, HIGH);
digitalWrite(h4, HIGH);
}
if (hour = 8) {
digitalWrite(h8, HIGH);
}
if (hour = 9) {
digitalWrite(h1, HIGH);
digitalWrite(h8, HIGH);
}
if (hour = 10) {
digitalWrite(h2, HIGH);
digitalWrite(h8, HIGH);
}
if (hour = 11) {
digitalWrite(h1, HIGH);
digitalWrite(h2, HIGH);
digitalWrite(h8, HIGH);
}
if (hour = 12) {
hour = 0;
}
if (minute = 1) {
digitalWrite(m1, HIGH);
}
if (minute = 2) {
digitalWrite(m2, HIGH);
}
if (minute = 3) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
}
if (minute = 4) {
digitalWrite(m4, HIGH);
}
if (minute = 5) {
digitalWrite(m1, HIGH);
digitalWrite(m4, HIGH);
}
if (minute = 6) {
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}
if (minute = 7) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}
if (minute = 8) {
digitalWrite(m8, HIGH);
}
if (minute = 9) {
digitalWrite(m1, HIGH);
digitalWrite(m8, HIGH);
}
if (minute = 10) {
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
}
if (minute = 11) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
}
if (minute = 12) {
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
}
if (minute = 13) {
digitalWrite(m1, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
}
if (minute = 14) {
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
}
if (minute = 15) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
}
if (minute = 16) {
digitalWrite(m16, HIGH);
}
if (minute = 17) {
digitalWrite(m1, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 18) {
digitalWrite(m2, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 19) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 20) {
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 21) {
digitalWrite(m1, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 22) {
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 23) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 24) {
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 25) {
digitalWrite(m1, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 26) {
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 27) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 28) {
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 29) {
digitalWrite(m1, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 30) {
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 31) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
}
if (minute = 32) {
digitalWrite(m32, HIGH);
}
if (minute = 33) {
digitalWrite(m1, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 34) {
digitalWrite(m2, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 35) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 36) {
digitalWrite(m4, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 37) {
digitalWrite(m1, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 38) {
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 39) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 40) {
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 41) {
digitalWrite(m1, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 42) {
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 43) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 44) {
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 45) {
digitalWrite(m1, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 46) {
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 47) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 48) {
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 49) {
digitalWrite(m1, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 50) {
digitalWrite(m2, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 51) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 52) {
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 53) {
digitalWrite(m1, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 54) {
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 55) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 56) {
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 57) {
digitalWrite(m1, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 58) {
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
if (minute = 59) {
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m8, HIGH);
digitalWrite(m16, HIGH);
digitalWrite(m32, HIGH);
}
delay(1);
}
Az "m" változó a percet, a mögötte lévő szám, a bináris értéket jelöli. Óránál ugyanígy "h"-val. Ledekkel még nem próbáltam ki, de a Serial ezt dobja vissza és nem értem miért:
1
5
0
1
59
0
1
59
0
1
59
0
1
59
0
az 1 59 0 folyamatosan ismétlődik, pedig másodpercenként változnia kéne. Mit szúrtam el?
Valamint, az problémát jelenthet, hogy 200mA a max kimeneti áram, de ha kiszámolom, ez ellenállásokkal együtt 210mA... hogy tudnám csökkenteni? Vagy biztonságos ez így? A hozzászólás módosítva: Jan 8, 2017
Kimaradt a feltétel vizsgálatnál az második '=' jel!
Igy kel!
|
|