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   441 / 852
(#) kapu48 válasza mcucoder hozzászólására (») Ápr 5, 2018 /
 
De ha ilyen sűrűn akarsz rádiózni? Akkor nagyobb lesz a fogyasztásod a tervezetnél.
(#) proba válasza mcucoder hozzászólására (») Ápr 5, 2018 /
 
Vagy ha kicsit van kedved nézelődni, az arduino kódot vissza lehet fejteni. Gondolom nem túl bonyolult. Utána már a pic is mehet.
(#) kapu48 válasza kapu48 hozzászólására (») Ápr 5, 2018 /
 
Ennél tágabban programozható ídőzítöttn em találsz.
Ami ráadásúl 1 évig is üzemel 1 gombellemről.
Using the hardware real-time clock (RTC) in ... - STMicroelectronic...alarms
A hozzászólás módosítva: Ápr 5, 2018
(#) mcucoder válasza kapu48 hozzászólására (») Ápr 5, 2018 /
 
Idézet:
„Téves az RTC ismereted!”


Szia!
Igazad van!
Rosszul értelmeztem!
Jobban megnézve egy részletesebb adatlapon:
- 20 bites előosztó,
- 32 bites számláló,
Mivel a számláló (és az előosztó) beállítható tetszőleges kezdőértékre, és a számláló túlcsordulása ébresztheti az MCU-t, így tetszőleges érték állítható be (elvileg 30 us-os felbontás 32768Hz kvarccal).
Ha az STM fut arduino alól, és még az RF24 lib-et tudom használni vele az nagyon jó lenne.

Kérdés még lenne ezzel kapcsolatban nagyon sok, főleg az arduinó alá beintegrálás módja,
és az esetleges eltérések a használatban.(minden arduino utasítás fut rajta, melyik nem vagy máshogy, ... ?)
(#) kapu48 válasza mcucoder hozzászólására (») Ápr 5, 2018 /
 
(#) mcucoder válasza kapu48 hozzászólására (») Ápr 5, 2018 /
 
Idézet:
„De ha ilyen sűrűn akarsz rádiózni? Akkor nagyobb lesz a fogyasztásod a tervezetnél.”

Szia!
1 központ és max. 100 -200 Node-ot akarok/szeretnék, szigorú időablakos módban használni NRF24L01-el.
A központ fogyasztása a legnagyobb, de itt van hálózati táp.
A node-ok viszont akkuról (18650-2000mAh, vagy fele akkora fizikai méretű 1000mAh) mennek, itt kell takarékoskodni.De ezek minden ciklusban (4 sec) csak 1ms-ig mennek 80mA-el (adás) plusz 10-15 ms-ig 6 mA-el (feldolgozási idő). Így elég sokáig kitart az akku.
(#) mcucoder válasza proba hozzászólására (») Ápr 5, 2018 /
 
Szia!

Már "visszafejtettem" (PIC-re), de mégsem úgy működik mint arduino alatt.
Minden bizonnyal én rontottam el valamit, de már meguntam a hibakeresést.
Néha megy az ACK payload-os dinamikus hosszúságú adés/vétel, néha meg nem.
Ha kikapcsolom az MPLABX debugját, akkor életre kel, (bár ekkor sem mindig), ha debug üzemmódban vagyok akkor legtöbbször nem megy !
Elég sokat foglalkoztam vele, -szinte eredmény nélkül- így most inkább másik megoldást/utat keresek.Már csak azért is mert az RF kommunkáció csak egy része az egész feladatnak.
A nagyobb falat a hálózat üzemeltetése lenne, ha lenne egy stabilan működő RF kommunikációm.......
Amúgy is elszörnyeszt hogy egy funkcióhoz 33 regisztert kell beállítanom az NRF-ben!
(#) kapu48 válasza mcucoder hozzászólására (») Ápr 5, 2018 /
 
(#) kapu48 válasza mcucoder hozzászólására (») Ápr 5, 2018 /
 
Ha külső eszköz? Még ez is fontos:
STM32F103xx RTC calibration.pdf
Bővebben: Link
A hozzászólás módosítva: Ápr 5, 2018
(#) kapu48 válasza mcucoder hozzászólására (») Ápr 5, 2018 /
 
(#) devilke3000 válasza kapu48 hozzászólására (») Ápr 5, 2018 /
 
Ezt mi okoza?
  1. exec: "/bin/arm-none-eabi-g++": file does not exist
  2. Error compiling for board Generic STM32F103C series.
(#) kapu48 válasza devilke3000 hozzászólására (») Ápr 5, 2018 /
 
hova telepítetted, és melyik alkalmazás?

nálam itt van, és gondnélkül fordúl pl.:
c:\Users\Kapu48\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\RTClock\examples\Test_RTClock\

Idézet:
„Sketch uses 15 460 bytes (23%) of program storage space. Maximum is 65 536 bytes.
Global variables use 2 824 bytes of dynamic memory.
A hozzászólás módosítva: Ápr 5, 2018

STM32.jpg
    
(#) kapu48 válasza kapu48 hozzászólására (») Ápr 5, 2018 /
 
(#) kapu48 válasza mcucoder hozzászólására (») Ápr 6, 2018 /
 
Van 1 érdekes project, egyből lefordult az STM32F103C-re!

Bővebben: Link
Optimized High Speed NRF24L01+ Driver Class

Kérdés, hogy fut is hiba nélkül az adott HW kiépítésen?
A SPI része kérdéses föleg, azt szerintem adoptálni kellene.
A hozzászólás módosítva: Ápr 6, 2018
(#) atus1981 hozzászólása Ápr 6, 2018 /
 
Sziasztok!
2 uno között szeretnék 5 értéket átvinni, egyikről a másikra.
A küldés-fogadás megy, viszont szét kellene válogatni a vevő oldalon a kapott értékeket.
Tehát az adatcsomagból kiválogatni, hogy mi mihez tartozik, ebben kérném a hozzáértő segítségeket.
Köszi.
(#) atus1981 válasza atus1981 hozzászólására (») Ápr 6, 2018 /
 
Bocsánat, az lemaradt, hogy soros /tx-rx/ vonalon.
(#) KBal76 válasza atus1981 hozzászólására (») Ápr 6, 2018 /
 
Minden adatod elé teszel egy jellemzô karaktersort, vagy ha egyszerre küldöd (mármint egymás után) akkor egy indító karaktersort is teszel elé, és azt figyelteted a másik oldalon. Ha az indító karakterek megvannak, onnan tudod hogy a következô az 1. éles adat, az azt követô a 2., stb.
(#) atus1981 válasza KBal76 hozzászólására (») Ápr 6, 2018 /
 
Az elgondolás részemről is ilyesmi, viszont egy példa sokat segítene.
Talán megoldás lehet, hogy a küldő oldalon az értékekhez hozzáadok 100-200-300-400-500 és a fogadó oldalon meg feltételhez kötöm, a kapott értéket, majd kivonom és ott az eredeti érték.
Természetesen mind az 5 küldendő érték 0-99 közötti, ezért gondolnám, hogy a fentebb hozzáadott "azonosítókkal" rendben működhet a dolog.
A hozzászólás módosítva: Ápr 6, 2018
(#) KBal76 válasza atus1981 hozzászólására (») Ápr 6, 2018 /
 
Szóval írjuk is meg neked?
Tessék (most csak notepadon írtam meg, nem teszteltem, de szerintem kb. jó lehet):
  1. //változók
  2. int beugr1;//két változó
  3. int beugr2;
  4. int scnt;//számoljuk a bejövô hasznos bájtokat
  5. //****    programkód   ****
  6. void loop() {
  7.   // serial figyelése
  8.   if (Serial.available() > 0) //ha van bejövô adat
  9.  {
  10.   int inByte = Serial.read(); //be is olvassuk
  11.  
  12.   if (beugr2==0)
  13.    {
  14.     switch (inByte)
  15.     {
  16.       case 'b': //ezt várjuk elsônek
  17.         beugr1=100;
  18.         beugr1=0;
  19.         break;
  20.       case 'e'://ezt várjuk m ásodiknak
  21.         if (beugr1==100) { beugr2=100;}
  22.         beugr1=0;
  23.         scnt=0;//számlálónk nullázása
  24.         break;
  25.        default: //ha bármi más jön az hiba
  26.          beugr1=0;
  27.          beugr2=0;
  28.     }
  29.    }
  30.     else //ha már bent vagyunk
  31.    {
  32.     scnt=scnt+1;
  33.     switch (scnt)
  34.     {
  35.     case 1:
  36.     //elsô hasznos bájt feldolgozása
  37.    //*** adat az inByte változóban van, és lentebb is így lesz.
  38.     break;
  39.     case 2:
  40.     //második
  41.     break;
  42.     case 3:
  43.     //harmadik
  44.     break;
  45.     case 4:
  46.     //negyedik
  47.     break;
  48.     case 5:
  49.     //ötödik
  50.      //miután megvolt, várjuk az ujabb beugrót: ami ismét "b" és "e" karakterek
  51.      beugr1=0;
  52.      beugr2=0;
  53.     break;
  54.  
  55.     }
  56.    }
  57.  
  58.  }
  59. }
A hozzászólás módosítva: Ápr 6, 2018
(#) KBal76 válasza KBal76 hozzászólására (») Ápr 6, 2018 /
 
A kód csak ötletadó, nem kipróbált, hibák lehetnek benne.
mint pl.:

18. sor helyesen: beugr2=0;

Illetve a változók nincsenek inicializálva, stb.
(#) mcucoder válasza atus1981 hozzászólására (») Ápr 6, 2018 /
 
Idézet:
„2 uno között szeretnék 5 értéket átvinni, egyikről a másikra.”


Ha a biztonságos, adatvesztés/adathiba nélküli átvitelre nincs szükség akkor a már javasolt megoldások teljesen jók lehetnek.
Ha az átvitt adatokban meg akarsz bízni valamilyen szinten akkor érdemesebb máshogy szervezni az üzenetek felépítését :
Például :
STA, DST, SRC,DCNT, DATA 0 .. n, SUMLO, SUMHI, STO
ahol :
STA - Start byte (értéke pl:1)
DST - Címzett (értéke 0..255)
SRC - Feladó (értéke:0..255)
DCNT - Adatbyte-ok száma
DATA 0..n - adatbyte-ok
SUMLO - (DST-től DATA n-ig a byte-ok összege) low byte
SUMHI - (DST-től DATA n-ig a byte-ok összege) high byte
STO - Stop byte (pl : 2)

STA és STO byte-ok (első és utolsó byte az üzenetben) konverzió nélkül kerülnek átvitelre.
Az összes többi byte hexa karakterenként lesz továbbítva, tehát minden byte 2 db hexa karakter alakban (Lo-Hi sorrendben) kerül adásba.
Pl :
byte : 1 171
bináris alak : 00000001 10101011
Hexa forma : 0x01 0xAB
Átvitel sorrendje (Lo-Hi): 1,0 B,A

Átvitt karakter : 49,48 66,65

Mint látszik is az üzenetben (a Start és Stop byte-ok kivételével) csak egy erősen szűkített karakter készlettel dolgozunk.
Számjegyek : 0 (ASCII 48) - 9 (ASCII 57)
Hexa betűk : A (ASCII 65) - F (ASCII 70)

ELŐNYÖK :
- átviteli hibák könyebb észlelése, (a fenti értékkészleten kívüli karakterek HIBÁSAK, kivéve a start és stop karaktereket),

- tovább növeli az átviteli hiba észlelési valószínűségét a 2byte-os ellenőrző összeg képzése (vételi oldalon a vett adatokból kiszámoljuk az ellenörző összeget -szumma- és ha ez nem egyezik a vett ellenörző összeggel, akkor HIBA van),

- az adatok száma (DCNT) is segíti ahibák azonosítását (ha vett DCNT nem egyezik a tényleges adatok számával, akkor HIBA van ),

- az adatrész (DATA) felépítése egyértelműen azonosíthatja az adatokat (mivel tudjuk hol kezdődik, és hol van vége )

- könnyű azonosítani az üzenet elejét és végét (a start és stop byte-ok értékét a fenti értékkészleten kívül kell választani !)

- egyértelmű címzett és feladó azonosítás (pl RS485 rendszerben)

HÁTRÁNYOK :
- közel 2x akkora lesz az üzenetek mérete,
- küldés előtt hexa formára kell alakítani, a vételi oldalon pedig hexa számból vissza kell állítani a byte-ot

Remélem tudtam egy kicsit segíteni...
(#) mcucoder válasza mcucoder hozzászólására (») Ápr 6, 2018 /
 
Előző üzenetemben a formázás miatt nem értelmezhető a példa, ezért leírom mégegyszer:
Pl :
byte : 1
bináris alak : 00000001
Hexa forma : 0x01
Átvitel sorrendje (Lo-Hi): 1,0

Pl :
byte : 171
bináris alak : 10101011
Hexa forma : 0xAB
Átvitel sorrendje (Lo-Hi): B,A

Így már olvashatóbb.
(#) devilke3000 válasza kapu48 hozzászólására (») Ápr 6, 2018 /
 
igen ide alatt látja az stm32 eszközöket!
De egy sima blink forditotam csak volna!
(#) devilke3000 válasza kapu48 hozzászólására (») Ápr 6, 2018 /
 
vicces...

Snap011.jpg
    
(#) kapu48 válasza devilke3000 hozzászólására (») Ápr 6, 2018 /
 
Direkt kivan hangsúlyozva a telepítési útmutatóban, hogy az arduino1.6.5 változatát töltsed le!
(#) paramaibo hozzászólása Ápr 6, 2018 /
 
Sziasztok!
Egy 40x4 kijelzőt szeretnék illeszteni egy Mega alaplapra..Elméletileg telepítettem a LiquidCrystal440-et,meg is jelent az 1.8.2-as könyvtárában..
Mégsem akarja az igazságot,ezzel a hibaüzenettel megáll a fordítás:

[quote][/Arduino: 1.8.2 (Windows 7), Alaplap:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\dell760\Documents\Arduino\libraries\Liquidcrystal440\LiquidCrystal440.cpp:7:22: fatal error: WProgram.h: No such file or directory
#include "WProgram.h"

compilation terminated.

exit status 1
Hiba a(z) Arduino/Genuino Mega or Mega 2560 alaplapra fordításra.

Sima LiquidCrystal könyvtárral el tudom indítani,ha az RW-t gnd-re kötöm.Az e1 e2-t pedig
párhuzamosan..De akkor ugyanazt írja a felső két sorba,mint az alsó kettőbe..
Köszönöm a segítséget...
(#) kapu48 válasza paramaibo hozzászólására (») Ápr 6, 2018 /
 
Ha nem találja? Akkor telepítsed:
wprogram.h library arduino download

Vagy javítsd át: #include "Arduino.h" -ra.
A hozzászólás módosítva: Ápr 6, 2018
(#) Hp41C válasza paramaibo hozzászólására (») Ápr 6, 2018 /
 
A 4x40 -es kijelzők tulajdonképen két darab illesztő áramkört tartalmaznak. Ha párhuzamosan kötöd az E1 és E2 kivezetést, akkor természetesen mindkét kontroller ugyan azokat a parancsokat hajtja végre. Ahhoz, hogy függetlenül kezeld őket, az E1-et és az E2-t külön-külön kell vezérelned.
(#) atus1981 válasza mcucoder hozzászólására (») Ápr 6, 2018 /
 
Alapvetően nem kell biztonságos legyen. Elég ha küldve-fogadva van és feldolgozva.
Köszi a részletes leírást, de ennyire nem kívánom bonyolítani.
(#) paramaibo válasza kapu48 hozzászólására (») Ápr 6, 2018 /
 
Nagyon kezdő vagyok még az arduino világában..
Pontosan mit is javítsak át?
Következő: »»   441 / 852
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