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 1 / 41 Ugrás ide:
Sorok:
1  2  3  4  5   Következő ►  Utolsó ►|

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

frob | 2248    2024-03-28 09:21:53 [2036]

A jövőbeni tervekben sok minden van, talán egyszer majd valami ilyesmi is :D

Előzmény: guliver83, 2024-03-24 22:45:12 [2035]


guliver83 | 3219    2024-03-24 22:45:12 [2035]

Egész jó, meg akarod építeni!

Előzmény: frob, 2024-03-22 08:21:52 [2034]


frob | 2248    2024-03-22 08:21:52 [2034]

Sziasztok
Nem tudom volt e már, de egy érdekes és egész jó projektet találtam.



kézi tekerentyű cnc vezérléshez, kicsit másképp...


Arny | 8    2024-03-19 23:37:31 [2033]

Köszönöm hogy foglalkoztál vele.

Előzmény: dezsoe, 2024-03-18 07:42:22 [2032]


dezsoe | 2914    2024-03-18 07:42:22 [2032]

A zip-nek semmi baja. Csomagold ki valahová, majd találsz benne egy LCD16x2 könyvtárat. Ezt másold be a libraries könyvtáradba. (Nem írtam le külön, de tényleg mókolni kellett vele, mert a zipben nem logikus helyen van.)

Nem biztos, hogy van értelme sok energiát fektetni a program átírásába. (Igaz, továbbra sem néztem még bele, válaszolni is két nap alatt sikerült...) Sok működő és ingyenes ELS projekt van a neten, esetleg érdemes olyanra vadászni, amelyik nem valami speckó alkatrészre épül.

Előzmény: Arny, 2024-03-16 16:48:18 [2031]

Arny | 8    2024-03-16 16:48:18 [2031]

Megoldodott részlegesen probléma. Nem hagyott a dolog nyugodni, egy másik program szerkezete adta az ötletet. Az ino elindítása után kéri, hogy könyvtáron belül legyen, ez rendben, de a többi alkönyvtárt nem hívja meg, kézzel kel bemásolni. Másolás után elindul, problémát az a francos kijelző okozza, mert a gyári zip, biztosan hibás, mert
könyvárba történő meghívása után, azt mondja, nem tartalmaz megfelelő könyvtárat. Másik könyvárral (16x2) elindul, de egy ponton, amikor a gombokat keresi, elakad, mert ebben nincs gomb definiálva. Most már csak az a kérdés honnan lehet hibátlan OLIMEXINO-328-LCD16x2 könyvtárat letölteni, vagy <LiquidCrystal_I2C.h> re átalakítani .
Még egyszer köszönöm a segítő szándékot.

Előzmény: Arny, 2024-03-13 22:43:50 [2028]


svejk | 32800    2024-03-14 14:44:36 [2030]

Előzmény: B.Zoltán, 2024-03-13 23:12:59 [2029]


B.Zoltán | 1713    2024-03-13 23:12:59 [2029]

Nekünk az UNO-s menetvágóban, bár Assemblerben írt programmal, az 1200-as fordulaton az 1000-es encodert le tudja kezelni úgy, hogy közben marad egy kis ideje a kijelzőre is.
Ha jól számolom, akkor ez 80 kHz.
C nyelven nyilván nem tudja ezt a sebességet produkálni.

Előzmény: svejk, 2024-03-13 17:09:06 [2026]


Arny | 8    2024-03-13 22:43:50 [2028]

Köszönöm.

Előzmény: dezsoe, 2024-03-13 17:03:38 [2025]


dezsoe | 2914    2024-03-13 17:20:44 [2027]

Nem mélyedtem el a programban, még felületesen sem. A múltkorában viszont találkoztam egy olyan enkóder könyvtárral, ami állítólag kb. 30 kHz-ig bírja UNO esetében.

Az enkódert általában nem szokás lekérdezni, hanem olyan lábra van bekötve, amelyik tud megszakítást generálni és egy pici de hatékony kód lépteti a számlálót amerre kell. Egy felületesebben megírt változattal 20 kHz környékéig eljutottam pár éve, tehát ha jól van megcsinálva, akkor működhet.

Előzmény: svejk, 2024-03-13 17:09:06 [2026]


svejk | 32800    2024-03-13 17:09:06 [2026]

Tényleg elég hozzá egy UNO?
Ez lekezeli korrekten a 15-20 kHz-es encoder frekit?

Előzmény: dezsoe, 2024-03-13 08:17:18 [2023]


dezsoe | 2914    2024-03-13 17:03:38 [2025]

Hiányzik a ";" a piros előtti sor végéről.

Előzmény: Arny, 2024-03-13 16:41:20 [2024]


Arny | 8    2024-03-13 16:41:20 [2024]

Köszönöm, hogy foglalkoztál a kéréssel.

Bemásoltam az általad ajánlottat,legalább tovább megy de a képen látott helyen ismét elakad. Még nem töltöttem lapra csak ellenőrzés módban futtattam. Az Olimexino-val már tegnap próbáltam. Jól láttad LiquidCrystal_I2C lcd(ADDRESS_LCD,16,2); vel próbálom, egyszerűbb mint a sima 16x2.

  

Előzmény: dezsoe, 2024-03-13 08:17:18 [2023]


dezsoe | 2914    2024-03-13 08:17:18 [2023]

A projekt honlapjáról kiderül, hogy UNO-ra készült.

Előzmény: freewind, 2024-03-13 07:32:24 [2021]


dezsoe | 2914    2024-03-13 08:16:27 [2022]

Az LCD, amit használ az itt található. Ha csak nincs ilyen modulod, akkor nem érdemes ezzel küzdeni, mert a modul kezeli a gombokat is meg a képernyőt is egy PIC segítségével. Ugyanezen a lapon megtalálod a keresett library-t is, de van benne egy hiba. Az LCD16x2.cpp-ben az

#include "../Wire/Wire.h"


helyett
#include "Wire.h"


fog lefordulni.

Előzmény: Arny, 2024-03-12 19:25:36 [2020]

freewind | 88    2024-03-13 07:32:24 [2021]

Üdv,
Amennyiben hibaüzenet is bemásoltad volna egyszerűbb lenne. Illetve az sem ártana tudni, hogy mely arduinot használod (uno,mega)
Az LCD-t hogyan hajtod meg?

// LCD
#include <LCD16x2.h>
#include <Wire.h>
LCD16x2 lcd;



részből gondolom hogy I2C-n. Ebben az esetben meg kell adni a I2C címét.

Én ezt használom, példa hozzá:
#include <LiquidCrystal_I2C.h>

#define ADDRESS_LCD 0x27 //LCD cím

LiquidCrystal_I2C lcd(ADDRESS_LCD,16,2); //LCD


void setup()
{
Wire.begin();
lcd.init();
lcd.begin(16, 2);

lcd.backlight();
lcd.home();
lcd.setCursor(0, 0);
lcd.print("Inicializalas...");
lcd.setCursor(0, 1);
lcd.print("Kerem varjon!");
}

Előzmény: Arny, 2024-03-12 19:25:36 [2020]


Arny | 8    2024-03-12 19:25:36 [2020]

Tiszteletem a fórum társaknak. Program cserekerekek kiváltását hivatoot szolgálni, Segítséget szeretnék kérni, program futtatásában. Program LCD hibával tér vissza. Vagy négy különböző könyvtárat is letöltöttem, de egyiket sem fogadja el, zip könyvárba feltelepülnek. Sajnos a programozáshoz nem értek, csak használni tudom, ha hibátlan a program. Segítséget előre is köszönöm.

https://drive.google.com/file/d/1pw_SAhcx0-mBFxDlghivDmekNUzdfhOl/view?usp=sharing


frob | 2248    2024-03-10 18:02:31 [2019]

Csak még annyit, hogy pl olyan tiny-re amivel arduval már nem tudsz semmit, ezzel simán, mivel nem boot loader- en keresztül tolja le hanem a programozó készülék oda veri bele ahonnan a progi indul, tehát a bootloader helyére is tolhatsz progit!

Előzmény: frob, 2024-03-10 17:59:24 [2018]


frob | 2248    2024-03-10 17:59:24 [2018]

Így igaz, még sztem az elsők között voltam amikor megvettem, azóta is frissíti az ember, és nagyon sok atmel procit ismer!

Előzmény: Csuhás, 2024-03-09 17:27:01 [2016]


Robsy1 | 213    2024-03-09 17:43:21 [2017]

Köszönöm, szimpatikus így első ránézésre.

Előzmény: Csuhás, 2024-03-09 17:27:01 [2016]


Csuhás | 6650    2024-03-09 17:27:01 [2016]

Megemlítek neked egy általam használt alternatívát. Van egy olcsó Bascom névre hallgató elég hatékony kódot generáló basic fordító atmelekre. ( Ne egy sorszámozott goto-kal teli kódra gondolj) Magam évek óta használom, pár száz kbyteos forráskódú, szívhang elemző, vagy sok csatornás EEG programokat írtam ezzel. Jól kezeli a procik hw elemeit, illetve az időkritikus részeknél simán lehet ASM-be váltani. Az ingyenes demó verzióval kipróbálható.

Előzmény: Robsy1, 2024-03-09 15:47:45 [2015]


Robsy1 | 213    2024-03-09 15:47:45 [2015]

Biztos úgy van, ahogy mondod, te vagy a szakértője a témának.
Én nem tudom pontosan mennyi van (volt aki jóval száz fölöttiről beszélt a 16 bites verzióknal, mert a 8 biteseket nagyjából még én is átlátom), ezért is érdeklődtem itt. Egy biztos: a korszerűség, kényelem jegyében azt érzékelem, hogy szinte minden programozó manapság "menekül" az AVR ASM programozástól, mindenki valamilyen C fejlesztő rendszert/fordítót javasol, hogy ott kezdejek ezekkel foglalkozni. És azért egy ilyen AT Mega pdf adatlap még terjedelemre is elég "ijesztő", ha megnyitja az ember.

Na majd meglátjuk, majd jobban beleásom magam, aztán ha elakadok, majd jelentkezem. Köszi neked is az infókat.

Előzmény: dezsoe, 2024-03-09 14:53:39 [2014]


dezsoe | 2914    2024-03-09 14:53:39 [2014]

A PIC, az AVR és az ARM processzorok RISC architektúrájúak: nemhogy több ezer, de sokszor még 100 utasításuk sincs.

Előzmény: Robsy1, 2024-03-09 14:39:22 [2013]


Robsy1 | 213    2024-03-09 14:39:22 [2013]

Köszi, de attól félek, hogy ennek a huroknak meg a benne lévő utasítás ciklusoknak az össz eredő végrehajtási ideje nagyobb lesz így már mint 0.5 us.

Lehet, hogy át kéne tanulmányoznom idővel egy 16 bites AVR assembly utasításkészletét. Csak azt a tapasztaltam, akikkel beszélgettem már erről, hogy manapság már szinte senki (a profi programozók se) fejlesztenek ilyen AVR programokat ASM-ben, mert ezek már nem azzal a pár száz (hanem akár több ezer), viszonylag áttekinthető utasításkészlettel dolgoznak, mint egy 8 bites PIC, amiket eddig volt szerencsém programozgatni, és viszonylag átláthatók, megtanulhatók még nekem is, csak ugye "lassúak" nekem. Ez a 16 bites adatkezelésű AVR vagy (akár a PIC világ is) ilyen szinten egy más világ, nyilván a profi programozó se fog kínlódni manapság ASM-ben, inkább egy jó minőségű C fordítót használnak, ha még beleférnek a szűkös futási idő keretbe.

De valami trükje, csínja-bínja csak van ennek az AVR technikának, hiszen egy kis "vacak" Ardunió csak-csak elvezérelget egy 3D nyomtatót, néhány 10 kHz-es step/dir frekivel, ami azért nem annyira rossz eredő eredmény egy ilyen kis "kütyühöz" képest.

Na mindegy, köszi mindenkinek a segítséget.

Előzmény: TBS-TEAM, 2024-03-09 13:44:40 [2012]


TBS-TEAM | 2635    2024-03-09 13:44:40 [2012]

Ha minimum 16 bitre van szükséged, de egy kritikus (gyors) kódszakaszban szeretnéd használni, akkor az int_fast16_t definíciókat használhatod.


16 bites mesterkód

#include <Wire.h>

void setup()
{
Wire.begin();
Serial.begin(9600);
}

void loop()
{
delay(2000);

int16_t bigNum;

byte a,b;
Wire.requestFrom(54,2);

a = Wire.read();
b = Wire.read();

smallNum = a;
smallNum = smallNum << 8 | b;

Serial.print(bigNum);
Serial.print("\n");
}

____________________________________________

16 bit slave code

#include <Wire.h>

void setup()
{
Wire.begin(54);
Wire.onRequest(requestEvent);
}

void loop()
{
delay(100);
}

void requestEvent()
{
int16_t bigNum = 1234;
byte myArray[2];

myArray[0] = (bigNum >> 8) &amp; 0xFF;
myArray[1] = bigNum & 0xFF;
Wire.write(myArray, 2);
}



  

morvfer7 | 2467    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 | 213    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 | 2914    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 | 2914    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 | 2467    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 | 184    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 | 2635    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 | 213    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 | 2914    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 | 213    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 | 1894    2024-02-27 22:00:15 [2001]

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

  


dtb | 1894    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 | 1552    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 | 2467    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 | 1552    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 | 1552    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 | 2467    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 | 837    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 | 4374    2023-04-29 16:18:48 [1993]

Köszönöm!

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


morvfer7 | 2467    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 | 1552    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 | 2467    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 | 4374    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 | 1351    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 | 2467    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?


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

Időrend:
Oldal 1 / 41 Ugrás ide:
Sorok:
1  2  3  4  5   Következő ►  Utolsó ►|


 ◊