Keresés

Részletes keresés

Sploc Creative Commons License 2016.10.28 0 0 2403

Valaki használt már Nrfl24l01-es modult két arduino közötti kommunikációra? Lassan megőszülök vele... Több példaprogramot próbáltam többféleképpen.

Az alap példa szerint, a küldőn létrehozunk egy változót egy kezdeti értékkel, pl.: x=100; és elküldjük. Még abban a ciklusban növeljük az értékét 1-el, majd a következőben a növelt érték küldődik.

A fogadó oldalon arra vár a program, hogy csomagot kapjon, ha kap, akkor kiírja a soros monitorra. A fogadó oldal össze-vissza működik, és soha nem adott helyes értéket:

 

Package:0
0.00


Package:-241
nan
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙<br />
Package:0
0.00


Package:0
nan
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙<br />
Package:0
nan
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙<br />

 

 

Ami plusz érdekesség, hogy az adóként működő arduino, (illetve a vevő is) csak akkor ad jelet, ha a Megán hozzáérek az ICSP tüskesor egyik lábához.... nem értem...

Ha nem érek hozzá, akkor a következő részben elakad, és nem lép tovább... amint "letestelem" fut, és számol. ha elengedem, akkor megáll...


void loop() {
  myRadio.write(&data, sizeof(data));                         // itt akad el, ha elé teszek be egy Serial.print-et akkor azt kiírja, de utána már nem.

  Serial.print("nPackage:");
  Serial.print(data.id);
  Serial.print("n");
  Serial.println(data.temperature);
  Serial.println(data.text);
  data.id = data.id + 1;
  data.temperature = data.temperature+0.1;
  delay(1000);
 

Ezért féltem a vezetéknélkülitől... :D

Már arra is gondoltam, hogy a Mega talán "nem alkalmas erre"? Mindenhol UNO-t látok használatban. Milliószor néztem meg a lábkiosztást, a bekötést... Hagytam mindent az alapprogram szerint. A PWM kimenetek egyáltalán alkalmasak erre a kommunikációra? Mega 7,8,11,12,13 láb.

Ez alapján csináltam az egyik próbát: https://www.youtube.com/watch?v=D40cgHyBLL4

 

 

Előzmény: Sploc (2401)
Sploc Creative Commons License 2016.10.28 0 0 2402

Tárgytalan, az avast kikapcsolása, megoldotta.... de miért ugat bele az antivirus, a többi programom, gond nélkül lefut...

Előzmény: Sploc (2401)
Sploc Creative Commons License 2016.10.28 0 0 2401

Sziasztok,

Megjött az Nrf24L01-es vezetéknélküli adó-vevőm, tegnap óta kínozom, de nem jutok el még a kipróbálásig sem. Bármilyen példaprogramot próbálok ellenőrizni, a következő hibaüzenettel megáll a fordítás.

 

C:Program Files (x86)Arduinohardwaretoolsavr/bin/avr-ar: unable to rename 'corecore.a'; reason: Permission denied

exit status 1
Hiba fordításkor.

 

Értem, hogy a jogosultsággal van baja, de miért? (Win10)

Törölt nick Creative Commons License 2016.10.27 0 0 2400

Megtaláltam az egyetlen kódot, amivel működik a CTE LCD 3.2" + DUE :

// UTFT_Demo with Font and icon Flash IC
// (C) 2012 Coldtears electronics
// For use with CTE 3.2" TFT LCD Module w/Font and Icon Flash IC
// in combination with CTE TFT/SD Shield for Arduino DUE
//web: http://stores.shop.ebay.com/coldtears-electronics-store
//
// Demo code and UTFT library freely modified from Henning Karlsen's UTFT Library
// Original by
// UTFT_Demo_320x240 (C)2012 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// The first part of the demo is to show how to use the font IC to draw font to the LCD,
// The IC also include some commonly used and open source icons
// great for custom application development.
//
//
// This second part of the demo is by Henning Karlsen,
// showing how to use most of the functions
// of the library with a supported display modules.
//
// This demo was made for modules with a screen resolution
// of 320x240 pixels.
//
// This program requires the UTFT library which is modified by Coldtears electronics
//

 

Version:
1.0 12 Feb 2012 - initial release
1.1 09 Apr 2012 - added support for more display modules
added support for String objects to print()
fixed a bug in printNumF()
added optional minimum length and filler character to pintNumI() and printNumF()
added option to disable unneeded controller chip code to minimize memory use
1.2 14 Apr 2012 - added support for more display modules
added getDisplayXSize() and getDisplayYSize()
1.3 03 Jun 2012 - added support for more display modules
fixed a bug in the ITDB02-25H init

 

Előzmény: Törölt nick (2394)
nagyharcos Creative Commons License 2016.10.27 0 0 2399

Köszi, erre nem godoltam..

Előzmény: Sploc (2398)
Sploc Creative Commons License 2016.10.27 0 1 2398

Szia, ha Nextion editorral csinálod, akkor mi sem egyszerűbb. A változó helyét ne számként hanem Text-ként deklaráld. Nekem minden floatként megy ki rá hiba nélkül.

Előzmény: nagyharcos (2396)
John Zero Creative Commons License 2016.10.27 0 0 2397

Sajnos nekem is voltak gondok, pl. a sima Linksys wifi-re semmiképpen se bírtam csatlakoztatni az ESP-t.

Vettem egy wifi AP-t a vateráról, filléres tétel (talán 2-3 ezer), azzal megy.

Előzmény: Zs.oio (2395)
nagyharcos Creative Commons License 2016.10.26 0 0 2396

üdv mindenkinek

segítség kéne: hogy tudok float (század pontosságú) változót átadni a nextion HMI-nek? ahogy nézem csak egész számokat kezel a HMI. hőmérők mért adatait akarom megjeleníteni. ketté kéne szedni a mért értéket egészekre és törtekre és úgy átadni? ezt hogy tudom megtenni? pld: 24,52 átadni két egész számként: 24 illetve 52?  minimum egy tizedes jegyet meg szeretnék jeleníteni.

Köszi!

Zs.oio Creative Commons License 2016.10.25 0 0 2395

Sziasztok!

 

Most tettem szert néhány ESP8266 modulra, wifi kommunikációt próbálok létrehozni egy hőmérő+ESP8266+Arduino kombó és a PC között, szóval abszolút alap dolgot próbálok. A gondom az, hogy miután az ESP8266 megkapja a tápot, kiüti az otthoni wifit. Egyszerűen megszűnik az egész otthoni háló, semmilyen eszközöm nem lát semmiféle wifit az éterben. Amint leválasztom a kütyüt, visszatér az otthoni háló, mintha mi sem történt volna... Biztosan valami nagyon kezdő dolog, de hálás lennék, ha valaki magyarázatot tudna adni.

 

Üdv

Zs.

Törölt nick Creative Commons License 2016.10.24 0 0 2394

SainSmart CTE LCD 3.2" +Arduino Due Shield +Arduino Due kombót összepattintva az LCD-n csak fehér képernyő fogad.

A kód:  UTFT_Demo_320x240 (C)2012 Henning Karlsen

Előzmény: Törölt nick (2387)
tibi-d Creative Commons License 2016.10.24 0 0 2393

Nevetségesnek tűnik, de én 20 éve egy lábkörömcsipeszt használok, és, ha a "Jóisten" is úgy akarja, még 20 évig kiszolgál.

Előzmény: Prof (2390)
Törölt nick Creative Commons License 2016.10.23 0 0 2392

Én a legutóbb egy Piergiacomi tre-03-nb típusú csipőfogót vettem, de nyílatkozni nem tudok róla többezer lábbal kapcsolatban mert nem számolom :-), nincs annyira napi szinten használva sok lábra.. Egyelőre teszi a dolgát, és a br 2000 ft alatti árat megéri. A TR25 állítólag valamivel jobb.

 

http://cet.hu/hu/webshop/keziszerszamok/piergiacomi.html?tipus=Elektronikai%20oldalcs%C3%ADp%C5%91fog%C3%B3

 

De fogalmam sincs hogy nagyipari használatnál mennyire válik be, főleg mert olasz termék..... Ha valaki ügyes talán egyszeri élezést is meg lehet próbálni, de nem tudom van-e az élén valami felületi edzés keményítés, akármi.

Előzmény: Prof (2390)
John Zero Creative Commons License 2016.10.23 0 0 2391

Ilyet vettem most: http://www.ebay.co.uk/itm/231507715132

De nem olyan jó, mint amit a TME.eu-rol rendeltem, azt hiszem ott 3-4 ezerert volt jo.

Előzmény: Prof (2386)
Prof Creative Commons License 2016.10.23 0 0 2390

Igen, egy eszközt, amivel nyákforrasztás után számtalan (illetve számos, de bőven több, mint ezer) alkatrészlábat levághatok. És nem negyvenezer és nem vajból van. :-D Utóbbi van, fáj a kezem tőle.

Előzmény: Törölt nick (2388)
Törölt nick Creative Commons License 2016.10.23 0 0 2389

Bocs a hibákért.

Előzmény: Törölt nick (2387)
Törölt nick Creative Commons License 2016.10.23 0 0 2388

Úgy néz ki tényleg velem van a  baj :-)

 

Jól értem, csipőfogót keresel, illetve ezt értesz igásló alatt? ;-)

Előzmény: Prof (2386)
Törölt nick Creative Commons License 2016.10.23 0 0 2387

Szerintem azért nem kapsz választ, mert kb értelmezni lehetetlen teljes mértékben amit írtál.

 

De az is lehet magamból indulok ki, és csak nekem nem siekrült teljesen felfognoma s orokat, csaks ejtem mit szeretnél és mia  baj.

Előzmény: Törölt nick (2384)
Prof Creative Commons License 2016.10.23 0 0 2386

Sziasztok,

Most pár hete csak read-only vagyok, de visszaolvasok mindent, a nekem küldött (hasznos) válaszokat is, amiket köszönök!

 

Kérdésem: ha nem olcsó, vajszerű kínai vackot, de nem is 40000 forintos Erem (/Weller) igáslovat akarok, hanem a kettő között valamit, akkor mit (és hol) tudtok ajánlani?

Most alkatrészláb vágáshoz kellene kicsi, de nagyon strapabíró fejű darab (1N4007 diódákhoz is, ami ugye 0,6 mm-es láb).

 

Köszi előre is!

 

Prof

Törölt nick Creative Commons License 2016.10.19 0 0 2385

Az LCD J1 rövidzár beforrasztva.

Előzmény: Törölt nick (2384)
Törölt nick Creative Commons License 2016.10.19 0 0 2384

A korábban már beüzemelt Mega2560 R3 ATMEGA16U2 + SainSmart TFT LCD Adjustable Shield + 

3.2” TFT LCD with SD and Touch for Arduino
Mega

Után megérkezett a Due + CTE TFT/SD shield for arduino DUE + 3.2” TFT LCD with SD and Touch for Arduino hármas.

Az utóbbi összeállítást egyelőre nem sikerült munkára bírni.

A Megahoz képest változtattam:

To use with UTFT library:

1.uncomment "#define CTE_DUE_SHIELD 1" in the HW_ARM_defines.h in the hardwarearm folder of the UTFT library

2.Change the pinout to : UTFT myGLCD(ITDB32S,25,26,27,28);

 

Using the Touch function:

Remember to change the touch initialization to the following if it does not work.
The TP DataIN is routed to pin 32 of arduino DUE instead of 4.
(Because pin4 of arduino is a hardware SPI CS pin, which is reserved for SPI device)

 

URTouch  myTouch( 6, 5, 32, 3, 2);

 

Shipping default jumper configuration:

The TFT/SD Shield for arduino DUE is shipped with the following jumper config, if you use TFT modules in our store, you do not need to reconfig the jumpers.

LCD Vcc - 3.3V (JP2 shorted)
LCD backlight (LEDA+) - 3.3V (JP4 shorted)
arduino Pin32 to TP_DIN (JP10 opened)
On board SD - disabled (JP8 opened)

 

A képernyő szürke.

Merre tovább?

Sploc Creative Commons License 2016.10.17 0 0 2383

Köszönöm, ki fogom próbálni, és beszámolok az eredményről :D

Előzmény: halaloszto (2382)
halaloszto Creative Commons License 2016.10.17 0 0 2382

jaja, ez mindig az utolsó 5 mérésből veszi a érték szerint középső hármat, és azok átlagát adja. 

 

ha pl 1 másodpercenként mérsz, akkor ez minden mérés után ad egy értéket, de az függ az előzőektől is. kicsit le van simítva, meg kicsit késik. cserébe nem szőrös meg tüskés.

 

Vajk

Előzmény: Sploc (2381)
Sploc Creative Commons License 2016.10.17 0 0 2381

Így már jobb :-) Pl.: egy hibás mérés 5 eleme így néz ki: 75,25 ; 75,50; 32,50; 75,50; 75,75; ezekből ki kellene venni a 32,50-es és a 75,75-ös mérést. Vagy valahogy a tőle legtávolabb eső elemet fogja kicserélni?

Előzmény: halaloszto (2380)
halaloszto Creative Commons License 2016.10.17 0 0 2380

%5 azt jelenti hogy az 5tel osztás maradéka. így ha a p eléri az 5öt, újra nulla lesz.

 

na megtaláltad az első bugot. 

a maxx-ot kell mínuszra inicializálni, a minn-t pluszra. így az ifek szépen lecserélik az aktuálisra, ha az még nagyobb vagy kisebb, kigyűjti a legnagyobbat/legkisebbet.

 

 

Előzmény: Sploc (2379)
Sploc Creative Commons License 2016.10.17 0 0 2379

Tetszik a dolog, de nem nagyon értem :-) durván 20 perce nézem a programot, de nem jövök rá :D

 

int p=0;

double buffer[5];  // gondolom ez csak egy sima 5 elemű tömb

 

mérsz egyet, és beteszed a pufferbe következőnek:

 

buffer[p]=mért adat;

p=(p+1)%5;               // a p-t emeljük egyesével 5-ig? ( a %5-öt nem tudom mit jelent )

 

így a tömbben az utolső 5 mérés eredménye van mindig. végigmész, és a középső három átlagát veszed:

 

double szum=0;             // szum-ot nullázzuk

double maxx=1E10;       // maxx értke 10Milliárd

double minn=-1E10;      // minn értéke -10Milliárd

for (i=0;i<5;i++) {         // for ciklus. tiszta sor...

  szum+=buffer[i];         // buffer 5 értékét összeadom

  if (buffer[i]>maxx) maxx=buffer[i];   // ha valamelyik elem nagyobb mint 10Milliárd akkor az legyen maxx de ez soha nem lesz igaz, csak 20-30C félremérésem van

  if (buffer[i]<minn) minn=buffer[i];    // ha valamelyik elem kissebb mint -10Milliárd akkor az legyen minn de ez soha nem lesz igaz, csak 20-30C félremérésem van

}

eredmeny=(szum-minn-maxx)/3;      // összegből kivonom minn-t (-10Milliárd) és maxx-t (10 Milliárd) ha az if nem lett igaz.

 

 

Javítsatok ki ha tévedek, lehet estére gondolom rosszul :-)

 

Köszi!!

Bocsi, most nem tudtam kipróbálni, hogy félrebeszélek-e nincs nálam board :D 

Előzmény: halaloszto (2374)
halaloszto Creative Commons License 2016.10.17 0 0 2378

amúgy elegáns akkor lenne, ha pl a szumot nem számolná, hanem csak korrigálná amikor beteszi az új mérést. 

 

szum=szum-buffer[p];

buffer[p]=ujmeres

p=(p+1)%5

szum=szum+ujmeres.

 

de a min-maxxal akkor is kell szórakozni.

Előzmény: Prof (2376)
halaloszto Creative Commons License 2016.10.17 0 0 2377

nem nagyon vagyok tisztában hogy milyen cpu van a projektben :(

 

ha másodpercenként 5 mérés van, akor csak belefér egy ilyen. lehet szórakozni hogy ne double legyen, hanem valami fixpontos intekkel lehessen számolni, 6 elemű a buffer, mert akkor néggyel kell osztani, stb.

 

Vajk

Előzmény: Prof (2376)
Prof Creative Commons License 2016.10.17 0 0 2376

Duván számításigényes, ugynakkor elegáns megoldás.

U.i.: egyszer ennél egy kicsit egyszerűbb megoldással összevetettem egy Leonardot egy Nucleo 401-gyel. A pontos számra nem emlékszem, de nagyjából két nagységrenddel volt gyorsabb az utóbbi (azonos számítási ciklusidőhöz hány szám átlaga kell, és amíg a Leonardon ez olyan 10 volt, a Nucleon 400).

Előzmény: halaloszto (2374)
Sploc Creative Commons License 2016.10.17 0 0 2375

Köszönöm, jegyzeteltem, :-) ki fogom próbálni a javaslatokat, a távolság ebben az esetben akadály, mivel a "prototípus" üzemel a főzdében, ami a lakhelyemtől kicsit messzebb van, és a munkám miatt csak talán hétvége fele fogok tudni eljutni mókolgatni.

Előzmény: Törölt nick (2369)
halaloszto Creative Commons License 2016.10.17 0 0 2374

nem tudom mennyire van cpu kapacod ilyenre. 

 

először szokás egy cirkuláris buffer. 

 

int p=0;

double buffer[5];

 

mérsz egyet, és beteszed a pufferbe következőnek:

 

buffer[p]=mért adat;

p=(p+1)%5;

 

így a tömbben az utolső 5 mérés eredménye van mindig. végigmész, és a középső három átlagát veszed:

 

double szum=0;

double maxx=1E10;

double minn=-1E10;

for (i=0;i<5;i++) {

  szum+=buffer[i];

  if (buffer[i]>maxx) maxx=buffer[i];

  if (buffer[i]<minn) minn=buffer[i];

}

eredmeny=(szum-minn-maxx)/3;

 

hibázás joga fenntartva

Előzmény: Sploc (2372)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!