HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


Arduino



 

Időrend:
Oldal 2 / 42 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   1  2  3  4  5  6   Következő ►  Utolsó ►|

  Fórum főoldal  |  A lap aljára

morvfer7 | 2566    2024-03-09 12:54:18 [2011]

Úgy gondolom, hogy ha a fordító az PORTx regiszterekhez hozzáférést lát, 8 bites blokkokban fogja kezelni az adatokat.

Így ha egy 16 bites adatot írsz egy PORTx regiszterbe, akkor a fordító automatikusan fogja kezelni, akkor a 8 bites regiszterekhez tartozó két blokkot használ úgy, hogy az alsó 8 bitet a PORTx regiszter megfelelő bitjeire írja, majd az felső 8 bitet pedig a PORTx regiszter következő bitjeire.

Most nem tudom tesztelni, de kb így képzelem el.

Előzmény: dezsoe, 2024-03-09 12:02:47 [2009]


Robsy1 | 309    2024-03-09 12:27:46 [2010]

Köszönöm a segítségedet, ezek nagyon biztatóak, ha tényleg így megvalósíthatók C-ből is.
Bár az nagy kérdés, hogy ha egy port csak 8 bit szervezésű, szélességű, akkor mi lesz a 255 feletti adattal, ahogy Dezsoe ezt fekvetette. Én is azt gyanítom, hogy ehhez olyan Arduino típus kellene, ami 16 bites adat szervezésű, és képes egy utasításban a 0-FFFF adat mezőt "mozgatni" vagy azokkal műveletek végezni.
Mert az időnyerés miatt pont ez a bajom ezekkel a 8 bites utasításokkal, hogy ezekből több kell, mint amikor ezt egy soros utasítás is elintézi.

Előzmény: morvfer7, 2024-03-09 11:30:24 [2007]


dezsoe | 2934    2024-03-09 12:02:47 [2009]

A fordító el fogja dobni a felső 8 bitet, mivel a regiszterek 8 bitesek.

Előzmény: morvfer7, 2024-03-09 11:30:24 [2007]


dezsoe | 2934    2024-03-09 12:01:00 [2008]

Nincs. Amit tudok, az annyi, hogy kifejezetten jól optimalizál a C fordító, de nem volt még szükségem ennél pontosabb megközelítésre.

Előzmény: Robsy1, 2024-03-09 10:40:31 [2004]


morvfer7 | 2566    2024-03-09 11:30:24 [2007]

PORTx regiszterre való közvetlen hivatkozással a leggyorsabb.

Példaként, ha a 16 bites adatot egy adott portra (például PORTB) kiírni:

void setup() {
// port - kimenet
DDRB = 0xFFFF; // minden bit kimenet
}

void loop() {
// 16 bites adatot a PORTB-re
PORTB = 0xABCD; // Példa
}




Ez az ABCD értéket írja ki a PORTB regiszterbe.


Például Arduino UNO 328P mikrovezérlője 16 MHz-es órajellel ketyeg.

Az PORTx regiszterekhez történő közvetlen hozzáférés egy utasításnak számít, ez elég gyors, így amíg egy 16 bites adatot ki tudsz írni a portra, mindössze egy utasításciklus hosszúságú lesz, azaz körülbelül 62.5 nanoszekundum. (1 / 16 000 000 másodperc)

Fontos, hogy ez azt feltételezi, hogy az adott művelet szinkronizált a processzor órajelével, és nincs egyéb időveszteség a környezetben.

Előzmény: Robsy1, 2024-03-09 10:40:31 [2004]

tibs | 189    2024-03-09 11:19:36 [2006]

Szia!

Egy kiragadott példa az egyik programomból.

int inicial2(int buf2, int br)
{

PORTD &= B00111111;

_delay_loop_2(br);



for(int i=0; i<9; i++)


{
if((buf2>>i)&1)
{
PORTD |= B11000000;
_delay_loop_2(br);

}
else
{
PORTD &= B00111111;
_delay_loop_2(br);

}


}


PORTD |= B11000000;
_delay_loop_2(TX_P_STOP2);

}




Egy cikuls idő alatt hajtja végre ha jól tévedek.

Előzmény: Robsy1, 2024-03-09 07:44:18 [2002]


TBS-TEAM | 2892    2024-03-09 11:04:23 [2005]

Ha nagy sebességet szeretnél arduino kód futtatására akkor:
Teensy 4.1
ARM Cortex-M7 600 MHz-en
Lebegőpontos matematikai egység, 64 és 32 bit

Előzmény: Robsy1, 2024-03-09 10:40:31 [2004]


Robsy1 | 309    2024-03-09 10:40:31 [2004]

Köszönöm.
A C nyelvű utasítás(ok) eredő futási idejéről van tapasztalatod?

Előzmény: dezsoe, 2024-03-09 09:34:43 [2003]


dezsoe | 2934    2024-03-09 09:34:43 [2003]

A portok 8 bites szélességben írhatók/olvashatók. Nem kell hozzá feltétlenül lemenni assembly-ig, C-ből is elérhetőek. A mellékelt képen PA, PB, PC és PD kezdetű lábak tartoznak egy-egy 8 bites egységbe. Láthatóan nincs minden láb kiépítve, ahogy más mikrokontrollereknél is szokott lenni.

  

Előzmény: Robsy1, 2024-03-09 07:44:18 [2002]


Robsy1 | 309    2024-03-09 07:44:18 [2002]

A profi hozzáértőktől, AVR programozóktól kérdezném:
Van az Arduino utasítások közt olyan, ami csak egy-két sorból áll, és képes 8-16 bit szélességű adat Output műveletet egy porton végezni 0.5 mikrosec alatt?

Mert ahogy látom, szinte mindenütt csak ez a bitenkénti LED ki-be kapcsolgatási játék demo program van terítéken.


dtb | 1919    2024-02-27 22:00:15 [2001]

Egy másik verzió, ez egyszerűbb...

  


dtb | 1919    2024-02-27 21:54:40 [2000]

Elég régóta keresgéltem már egy power loss indikátor panelt, ma véletlenül beleszaladtam...
Ha esetleg valaki készít magának, én is szívesen megvennék belőle 4-5 darabot! Igazából úgy lenne célszerű, hogy egy panelra kerülne a puffer kondi és a védő dióda, meg maga az indikátor rész is, és 4 vagy 5 csatlakozó lenne:5VIN, 5VOUT, 2 x GND, meg a Signal

  


kaqkk007 | 1563    2023-04-30 09:53:50 [1999]

Akkor átvert, gyárilag jár hozzá.Max veszel bele egyet és beleteszed.

Előzmény: morvfer7, 2023-04-29 22:01:01 [1998]


morvfer7 | 2566    2023-04-29 22:01:01 [1998]

aki szerelte azt mondta, hogy nincs benne wifi, bár a távirányítóján van wifi gomb

Előzmény: kaqkk007, 2023-04-29 21:51:30 [1996]


kaqkk007 | 1563    2023-04-29 21:58:11 [1997]

Ha okos volt a klímás vagy a klíma előlapjának a belsejére vagy a távirányító elemfedelenének a belső oldalára ragasztotta , de az is lehet hogy a papírok közt van egy kicsi fehér dobozkában .

Előzmény: kaqkk007, 2023-04-29 21:51:30 [1996]

kaqkk007 | 1563    2023-04-29 21:51:30 [1996]

Elvileg benne van gyárilag a wifi stick , csak meg kell keresned a qr kódos matricát a papírok közt azt beolvasni a telóddal , letölteni az alkalmazást és rátanítani a wifidre

Előzmény: morvfer7, 2023-04-29 16:07:54 [1992]


morvfer7 | 2566    2023-04-29 21:15:07 [1995]

azért ennnyire mélyre nem megyünk. a klímának sem tenne jót a csak elveszem az áramot menet közben dolog.

ighazából nem gond a program, van is 2 féle elképzelésem, épp azért kérdeztem itt, hátha már valaki megoldotta. ha nem akkor beleugrok és összehozom

Előzmény: Jozs, 2023-04-29 20:54:07 [1994]


Jozs | 878    2023-04-29 20:54:07 [1994]

Ha csak annyi hogy be szeretnéd kapcsolni és nem akarod távolról állítgatni akkor egy sima wifi -s konnektor is megoldás lehet.

Előzmény: morvfer7, 2023-04-29 13:45:02 [1987]


szf | 4441    2023-04-29 16:18:48 [1993]

Köszönöm!

Előzmény: morvfer7, 2023-04-29 14:56:45 [1990]


morvfer7 | 2566    2023-04-29 16:07:54 [1992]

2 éves
Gree GWH12QB-K6DND6I-I

Előzmény: kaqkk007, 2023-04-29 15:44:46 [1991]


kaqkk007 | 1563    2023-04-29 15:44:46 [1991]

Milyen idős a klíád ? Milyen típus ? Már több éve lehet Wifi-stick et tenni a klímákba ami éppen erre van kitalálva .

Előzmény: morvfer7, 2023-04-29 13:45:02 [1987]


morvfer7 | 2566    2023-04-29 14:56:45 [1990]

itt van a komplett leírása kóddal együtt...

Előzmény: szf, 2023-04-29 14:46:40 [1989]


szf | 4441    2023-04-29 14:46:40 [1989]

Amennyiben publikus akkor érdekel az órának a progija.

Előzmény: morvfer7, 2023-03-26 21:22:01 [1986]


sanyi84 | 1358    2023-04-29 13:48:42 [1988]

ESP32? Elég olcsó, tudja a wifit. Más nem is nagyon kell hozzá, csak egy infra LED és cuccai.

Előzmény: morvfer7, 2023-04-29 13:45:02 [1987]


morvfer7 | 2566    2023-04-29 13:45:02 [1987]

lassan itt a nyár és szeretném az itthoni klímát valahogy "okosítani", hogy ne kelljen állandó üzemben menni, de mire hazaérek már a megfelelő hőmérséklet fogadjon.
Szóval nem tudom valaki már csinált-e ilyet, hogy ne kelljen újra feltalálnom a kereket.
Ha nekem kell előlről megoldani, akkor is kérdezném, mi lenne a jobb megoldás.
Egy arduinoval kiolvassam az eredeti távvezérlő kódjait, majd egy programban ezeket felhasználva készítsek egy "wifire csatlakozott távvezérlőt" amit távolról telefonon tudok kezelni, vagy alapból a klímába kössem be a vezérlést?

morvfer7 | 2566    2023-03-26 21:22:01 [1986]

Csak úgy unatkoztam, a héten kevés a meccs.



ebalint | 1769    2023-03-08 08:34:04 [1985]

szia!
A múlt héten nézegettem a netet rexasztal ügyben.

Publikus a megépített asztalod?

Előzmény: Törölt felhasználó, 2023-03-07 18:38:11 [1976]


Sásdi Zoltán | 731    2023-03-08 08:18:45 [1984]

Én ilyen kicsikkel csináltam egy "gravírozót, ceruzával a kezében, A5-ös területtel. Sosem bízok a G kódokban amit én írok, megrajzolja a műszer előlapot, látom hol a hiba, olcsón javitható.

Előzmény: vad3mb3r, 2022-09-01 23:53:12 [1973]


TBS-TEAM | 2892    2023-03-07 20:15:40 [1983]

Magyar angol szabályok

Előzmény: Törölt felhasználó, 2023-03-07 20:01:48 [1980]


TBS-TEAM | 2892    2023-03-07 20:13:48 [1982]

Amennyiben a piros golyó lyukba kerül, akkor csak azzal végezhetjük a következő lökést.

Előzmény: Törölt felhasználó, 2023-03-07 20:01:48 [1980]


TBS-TEAM | 2892    2023-03-07 20:07:47 [1981]

Még egy pár érdekesség aminek a megoldása
fejtörést okozhat.
A golyóknak ütküzni kell csak akkor érvényes
a lyukba kerülő golyó értéke.
A pályát elhagyó golyó, és főleg ami az alapvonali bőrre
kigorul annak az érzékelése kezelése.

Előzmény: Törölt felhasználó, 2023-03-07 19:51:37 [1978]


Törölt felhasználó    2023-03-07 20:01:48 [1980]

Ezt most lehet, hogy nem teljesen értem...
Amúgy van még egy buktató amire eddig nem gondoltam... A piros golyó duplát ér ugye... na itt a követkeező kihívás..

Előzmény: TBS-TEAM, 2023-03-07 19:56:40 [1979]


TBS-TEAM | 2892    2023-03-07 19:56:40 [1979]

Angol játékot nem akarsz játszani?

Előzmény: Törölt felhasználó, 2023-03-07 19:51:37 [1978]


Törölt felhasználó    2023-03-07 19:51:37 [1978]

igazad van! lehe, hogy a gomba esetében a nullázás is egy külön nyomógombbal történne.. Erre nem is gondoltam. bár van itthon mindenféle szenzorom (lézer, induktív, kapacitív, színérzékelő, stb....) Valamelyikkel csak sikerül megoldanom... ha meg nem hát marad a jó öreg nyomógomb..

Előzmény: TBS-TEAM, 2023-03-07 19:11:20 [1977]


TBS-TEAM | 2892    2023-03-07 19:11:20 [1977]

Egy érdekes kihivás van benne a gomba.
Ha a gomba felborul nullázódak az addigi potok, viszont
Ha:
Ha a gombát csupán arrébb tolja egy golyó, de az nem borul fel, ez az eset nem számít hibának.

Na itt kell agyalni a megoldáson.

Előzmény: Törölt felhasználó, 2023-03-07 18:38:11 [1976]

Törölt felhasználó    2023-03-07 18:38:11 [1976]

Sziasztok!
Építettem egy REX asztalt és szeretném a pontokat digitálisan számoltatni illetve kijeleztetni. Olyan hozzáértő személyt keresek aki megírna egy programot arduinora ami számolja a pontokat, figyeli a gombát és nulláz, ha kell. illetve egy váltó gomb is helyet kapna a több játékos miatt. Az elektronikát én elkészítem csak a program kellene. Természetesen több információval, konkrétumokkal is tudok szolgálni, ha megtaláltam a megfelelő személyt!
Mondanom sem kell, hogy anyagi juttatás fejében várom mindezt, nem ingyen!
Köszönöm!


Kisamotors | 708    2022-09-02 06:01:56 [1975]

Keress rá, hogy mi is a különbség a bipoláris és az Unipoláris léptetők között.
Legegyszerűbb, ha az A és a B fázistekercs középső megcsapolását nem kötöd be, így máris 4 vezetéked van. (Igaz, elég rossz működési tulajdonságokkal, de mozgatható.)

A YT-on milliónyi videó van arról, hogy lehet különféle megoldásokkal léptecseket vezérelni. Elég, ha csak beírod az Arduino és stepper motor keresőszavakat.
Az alapokat ismerd meg, aztán építhetsz ezekből a motorokból mondjuk egy CNC rajzgépet (plottert), vagy vehetsz új gombokat a kabáthoz, de ez már a következő lépcső.

Előzmény: vad3mb3r, 2022-09-02 00:00:29 [1974]


vad3mb3r | 9    2022-09-02 00:00:29 [1974]

...ez előbb elment bocsi...
Szóval azzal tisztában vagyok, hogy ezzel nem fogok marogatni, acélt forgácsolni, a célom nem is ez lenne! A lényeg egy részről az építés öröme, másrészről a CNCk felépítésének megértése, a vezérlés tanulása. Szóval tudom, hogy ezek nem erős motorok!
A kérdésem az lenne, hogy hogy a viharba kell bekötni ennek a 6 pinjét???
Ami arduinoshildeket láttam, azok 4 pinesek. Hogy mozgathatnék meg egy ilyen motort? ...ha egyáltalán arduinoval lehet...

Előzmény: vad3mb3r, 2022-09-01 23:53:12 [1973]


vad3mb3r | 9    2022-09-01 23:53:12 [1973]

Üdvözleheletem!

Sok más projektem mellett, gondolkodom egy icipici CNC építésén. ...amit arduinoval terveznék vezérelni!
Namármost van kb 8 léptető motorom, amit egyszet egy diszkó lámpából szedtem ki.

  


csatlos.laszlo | 145    2022-07-15 07:10:48 [1972]

XTisztelt: forumosok! Valakinek nincs veletlenul telefon bluetoot arduino relle eszkozre irt hexben kapcsolo programja?


Törölt felhasználó    2022-03-03 11:13:06 [1971]

Nekem sem sok programozási tudásom de ezek még mennek kénytelen cél érdekében!
Ami ardu programozási szinten fontos (minta példa elinduláshoz) modbus eszköz tudjad milyen eszköz cimen indul ez 001-255 közöt választható...eszköz baund értéke 4800..9600 tetszés szerint! Az rs485 sorosport átalakítót amit mutattam az könnyü elindítani össze drótozni érdemes hadveres szeriált használni az megbízhatóbb .....sajnos softserial nálam töbször is elakadt ami alapban arduino ide használ de van több softserial könyvtár fejlesztés amik jobbak megbizhatobak!
notepad meg átírod a te fogyasztásmerőd regiszter cimeit "lent linkeltem " Szintén ebben a könyvtárban SDM.h sdm120..220 eszközre van meg irva!
SDM_Energy_Meter-master sdm_simple.ino mintapélda meni fog szépen ha amit mutattam port átalakítóval csinálod meg! Sajnos vannak más átalakítok ami szinte csak vesződni lehet a rossz port fesz szintek miat és nem indul el a kommunikáció rajta azok felejtősek

Előzmény: szf, 2022-03-03 09:22:27 [1970]


szf | 4441    2022-03-03 09:22:27 [1970]

Számítottam a sok jelentkezőre

Hasonló modullal próbálkoztam. Van is kapcsolat, legalábbis a fogyasztásmérőn a felirat jelzi. Csak nincs elegendő tudásom a továbblépéshez.

Előzmény: Törölt felhasználó, 2022-03-03 02:07:24 [1969]


Törölt felhasználó    2022-03-03 02:07:24 [1969]

sok a jelenkezö!:)

rs485 modul ami jóó... már 3.3v is elindul!
https://www.google.hu/aclk?sa=l&ai=DChcSEwjslc3P3Kj2AhVEAYsKHTyEBDoYABAFGgJlZg&sig=AOD64_2P-gucU7p-nyWm48sKnkdJpKKaDA&adurl&ctype=5&ved=2ahUKEwiOyMLP3Kj2AhXX7rsIHbYZASsQvhd6BAgBEFU
protocol
https://www.socomec.com/files/live/sites/systemsite/files/SCP/6_gestion_energie/diris/diris_a10/DIRIS-A-10_COMMUNICATION-TABLE_2018-01_DCG01013_MULTI.html

sdm220 könyvtárba átt irod DIRIS-A-10 protokol regisztereire "read" szekcióban

https://github.com/peninquen/Modbus-Energy-Monitor-Arduino

egy régi hasonló projekt (esp8266)


Előzmény: szf, 2022-03-02 15:48:09 [1968]


szf | 4441    2022-03-02 15:48:09 [1968]

Van egy DIRIS A10 villamos fogyasztásmérőm , szeretném az adatokat arduino-val modbus-on kiolvasni.
Van valakinek valami kiforrott progija erre. Nem pont erre a típusra, hanem valami általános dolog amivel el lehetne indulni.


PSoft | 18614    2022-02-10 18:37:36 [1967]

Előzmény: szf, 2022-02-10 18:14:59 [1966]

szf | 4441    2022-02-10 18:14:59 [1966]

Türelmetlen vagyok. Inkább megcsináltam magam.

Előzmény: szf, 2022-02-10 17:35:40 [1965]


szf | 4441    2022-02-10 17:35:40 [1965]

Van egy nyomógomb kezelési problémám.
Keresek valakit aki privátba segítene. Köszönöm!


Jozs | 878    2021-11-19 20:59:24 [1964]

Nézd a végéről.
Ha a "raketa == HIGH" nem teljesül, az utána következő ELSE ágban lefut az "elozo = mostani" utasítás. Vagyis "raketa == LOW" esetén mindenképp egyenlő a 'mostani' és az 'elozo', függetlenül az előzményektől. És így tovább, visszafelé haladva.

Ráadásul gyanús, hogy a "mostani" -ba nem is az kerül amit szeretnél, hanem amit abban az "IF" -ben kapott, amelyikben a végéről visszafelé haladva először volt HIGH a bemenet.

Persze azt sem ártana tudni mi volt az elképzelés.

Előzmény: Erdo Norbert, 2021-11-19 12:22:34 [1962]


Jozs | 878    2021-11-19 20:17:50 [1963]

Csak akkor nem fut le egyik ELSE ág sem, ha egyszerre az összes bemenet HIGH.

Előzmény: Erdo Norbert, 2021-11-19 12:22:34 [1962]


Erdo Norbert | 63    2021-11-19 12:22:34 [1962]

Sziasztok!
Még kezdő vagyok a programozásban, és szeretnék segítséget kérni. úgy kellene működnie, hogy az előző követi a mostani változót, de sajnos a kettő mindig egyenlő, és nem tudom hogy miért.
Program:

const int s1 = 0;
const int s2 = 1;
const int s3 = 2;
const int s4 = 3;
const int s5 = 4;
const int s6 = 5;
const int r1 = 6;

const int fel = 7;
const int le = 8;

const int led1 = 9;
const int led2 = 10;
const int led3 = 11;
const int led4 = 12;
const int led5 = 13;
const int led6 = A0;
const int ledr = A1;
const int ledfel = A2;
const int ledle= A3;


//valtozók
int elozo = 0;
int mostani =0;
int difi = 0;

int egy = 0;
int ketto = 0;
int harom = 0;
int negy = 0;
int ot = 0;
int hat = 0;
int raketa = 0;
int vido = 100;
int natural = 1000;



void setup() {

Serial. begin(9600);

pinMode(fel, OUTPUT);
pinMode(le, OUTPUT);

pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(ledr, OUTPUT);
pinMode(ledfel, OUTPUT);
pinMode(ledle, OUTPUT);

pinMode(s1, INPUT);
pinMode(s2, INPUT);
pinMode(s3, INPUT);
pinMode(s4, INPUT);
pinMode(s5, INPUT);
pinMode(s6, INPUT);
pinMode(r1, INPUT);

}

void loop() {

egy = digitalRead(s1);
ketto = digitalRead(s2);
harom = digitalRead(s3);
negy = digitalRead(s4);
ot = digitalRead(s5);
hat = digitalRead(s6);
raketa = digitalRead(r1);

if (egy == HIGH) {

mostani = 1;
digitalWrite(led1, HIGH);
}
else {

elozo = mostani;
digitalWrite(led1, LOW);
}
if (ketto == HIGH) {
mostani = 2;
digitalWrite(led2, HIGH);
}
else {
elozo = mostani;
digitalWrite(led2, LOW);
}
if (harom == HIGH) {
digitalWrite(led3, HIGH);
mostani = 3;
}
else {
digitalWrite(led3, LOW);
elozo = mostani;
}
if (negy == HIGH) {
digitalWrite(led4, HIGH);
mostani = 4;
}
else {
digitalWrite(led4, LOW);
elozo = mostani;
}
if (ot == HIGH) {
digitalWrite(led5, HIGH);
mostani = 5;
}
else {
digitalWrite(led5, LOW);
elozo = mostani;
}
if (hat == HIGH) {
digitalWrite(led6, HIGH);
mostani = 6;
}
else {
elozo = mostani;
digitalWrite(led6, LOW);
}
if (raketa == HIGH) {
digitalWrite(ledr, HIGH);
mostani = 7;
}
else {
digitalWrite(ledr, LOW);
elozo = mostani;
}

//Serial.println(mostani);
Serial.println(elozo);

}


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 2 / 42 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   1  2  3  4  5  6   Következő ►  Utolsó ►|


 ◊ 
[ 0.9499 ]