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
    
   


Az AVR és lehetőségei...

Rekalaca kezeli! :))

 

Időrend:
Oldal 6 / 25 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   2  3  4  5  6  7  8  9  10   Következő ►  Utolsó ►|

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

n/a (inaktív)    2016-03-31 19:19:00 [970]

Ahogy olvastam, egyszerűnek tünt, de most, hogy próbálom megírni, nem megy.
Itt elakadtam:

int i;
int s;
int sign;
long value;
float result0;
float result1;
int clockpin[] = {4,6,8};
int datapin[] = {5,7,9};
unsigned long tempmicros;

void setup() {
Serial.begin(9600);
for(i=0; i < sizeof(datapin); i++) {

pinMode(clockpin, INPUT);

pinMode(datapin, INPUT);

}

}

void loop() {

for(i=0; i < sizeof(datapin); i++) {

pinMode(clockpin, INPUT);
pinMode(datapin, INPUT);
}

while (digitalRead(clockpin)==HIGH) {} //if clock is LOW wait until it turns to HIGH

tempmicros=micros();

while (digitalRead(clockpin)==LOW) {} //wait for the end of the HIGH pulse

if ((micros()-tempmicros)>500) { //if the HIGH pulse was longer than 500 micros we are at the start of a new bit sequence

decode(); //decode the bit sequence

}

}

void decode() {

sign=1;

value=0;

for (s=0;s<23;s++) {

while (digitalRead(clockpin)==HIGH) { } //wait until clock returns to HIGH- the first bit is not needed

while (digitalRead(clockpin)==LOW) {} //wait until clock returns to LOW

if (digitalRead(datapin)==LOW) {

if (i<20) {

value|= 1<<i;

}

if (i==20) {

sign=-1;

}

}

}

result0=(value*sign)/100.00;
result1=(value*sign)/100.00;

Serial.print(result0,2);
Serial.println(result1,2);
delay(1000);

}

Előzmény: hidroponi, 2016-03-31 15:11:00 [968]


VViktor | 1095    2016-03-31 19:11:00 [969]

Köszönöm mindenkinek


hidroponi | 510    2016-03-31 15:11:00 [968]

[code]

for(i=0; i < sizeof(datapin); i++) {
pinMode(clockpin, INPUT);
pinMode(datapin, INPUT);
}

[/code]

asszem most mar jo(bb)..


hidroponi | 510    2016-03-31 14:30:00 [967]

koszonom a moderatornak hogy probalta kijavitani de csak rosszabb lett, mert fontos reszek maradtak ki a javitas miatt belole..

Előzmény: hidroponi, 2016-03-31 10:55:00 [964]


RogerCo | 1155    2016-03-31 10:59:00 [966]

Én azért még így kiegészíteném:
for(i=0, ipinMode(clockpin, INPUT);
pinMode(datapin, INPUT);
}

hidroponi | 510    2016-03-31 10:55:00 [964]

oops. most vagy a forummotor kiszedte a lenyeget vagy en felejtettem el..

szoval helyesen:


for(i=0, i pinMode(clockpin, INPUT);
pinMode(datapin, INPUT);
}

Előzmény: hidroponi, 2016-03-31 10:22:00 [962]


n/a (inaktív)    2016-03-31 10:50:00 [963]

Köszönöm. Délután kipróbálom.
Remélm sikerül, mivel kezdö vagyok a programozásban.

Előzmény: hidroponi, 2016-03-31 10:22:00 [962]


hidroponi | 510    2016-03-31 10:22:00 [962]

a merok pinjeit tombe rakod.

pl.
int clockpin[] = {4,6,8};
int datapin[] = {5,7,9};

es mindenhol ahol hasznalja irsz egy for ciklust ami vegig szalad az osszes meron
es az adott mero tombbeli hivatkozasat hasznalja.

pl. a setup()-ban:

for(i=0, i pinMode(clockpin, INPUT);
pinMode(datapin, INPUT);
}

ugyanezt eljatszod a loop es a decode -nal is ertelemszeruen..

Előzmény: n/a (inaktív), 2016-03-31 09:04:00 [961]


n/a (inaktív)    2016-03-31 09:04:00 [961]

Nekem elég lesz, ha ki tudom olvasni a 2 vagy 3 tolóméröt. Esetleg még majd kibövitem szerszám tárolóval. Az is elég lenne, ha tudnék 4-5 szerszámot tárolni.

Előzmény: Csuhás, 2016-03-31 08:16:00 [959]


n/a (inaktív)    2016-03-31 09:01:00 [960]

Itttaláltam.

Előzmény: VViktor, 2016-03-31 05:47:00 [957]


Csuhás | 6650    2016-03-31 08:16:00 [959]

Nem akarsz nagyobbat álmodni? Android DRO

Előzmény: n/a (inaktív), 2016-03-30 19:41:00 [954]


ebalint | 1768    2016-03-31 08:03:00 [958]

Ha nem is pont ez, de Itt is

Előzmény: VViktor, 2016-03-31 05:47:00 [957]


VViktor | 1095    2016-03-31 05:47:00 [957]

Szia. Linkelnéd az oldalt ahol ezt találtad meg?

Előzmény: n/a (inaktív), 2016-03-30 19:41:00 [954]


n/a (inaktív)    2016-03-30 21:16:00 [956]

Nem értem minek kellene bármit is átkapcsolni? Ez így most működik. A programot kellen átírni hogy, pl. az 5, 6, 7, és 8-as pin-en bejövő jelet is dekódolja. Én kezdő vagyok a programozásban, de biztos meg lehet oldani.


n/a (inaktív)    2016-03-30 19:49:00 [955]

Csak úgy tudod ha a két vonalat átkapcsolod egy külön IC-vel például 2 darab CD4052, keress rá az adatlapjára látni fogod hogyan működik.

Előzmény: n/a (inaktív), 2016-03-30 19:41:00 [954]

n/a (inaktív)    2016-03-30 19:41:00 [954]

Szevasztok!
Az esztergámhoz szeretnék digitális kijelzőt csinálni Arduino Uno-val.
Idáig ott artok, hogy ki tudom írni egy tolómérő jeleit LCD-re. Itt meg állt a tudományom. A program magját a neten találtam. Így néz ki:

int i;

int sign;

long value;

float result;

int clockpin = 4;

int datapin = 5;

unsigned long tempmicros;





void setup() {

Serial.begin(9600);

pinMode(clockpin, INPUT);

pinMode(datapin, INPUT);

}



void loop () {

while (digitalRead(clockpin)==HIGH) {} //if clock is LOW wait until it turns to HIGH

tempmicros=micros();

while (digitalRead(clockpin)==LOW) {} //wait for the end of the HIGH pulse

if ((micros()-tempmicros)>500) { //if the HIGH pulse was longer than 500 micros we are at the start of a new bit sequence

decode(); //decode the bit sequence

}

}



void decode() {

sign=1;

value=0;

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

while (digitalRead(clockpin)==HIGH) { } //wait until clock returns to HIGH- the first bit is not needed

while (digitalRead(clockpin)==LOW) {} //wait until clock returns to LOW

if (digitalRead(datapin)==LOW) {

if (i<20) {

value|= 1<<i;

}

if (i==20) {

sign=-1;

}

}

}

result=(value*sign)/100.00;

Serial.println(result,2); //print result with 2 decimals

delay(1000);

}


Tudna valaki segíteni abban, hogyan lehet ezt a részt úgy átalakítani, hogy 3 tolómérőt dekódoljon.
Előre is köszönöm.


elektron | 15859    2015-10-13 21:41:00 [953]

A bootloaderes ATMega2560 panelt mikor megnyitom PC felől a soros portját, az úgy látom reseteli, ezt lehetne arra használni, ha az USB kommunikáció elszáll, akkor így újraindítani és akkor megy tovább, mert elég megbízhatatlanok ezek ugye általában azt tapasztalom.


elektron | 15859    2015-09-11 12:43:00 [952]

Előzmény: elektron, 2015-09-11 12:42:00 [951]


elektron | 15859    2015-09-11 12:42:00 [951]

Tegnap megoldottam a távcső vezérló PIC proci kimenetének a közvetlen tekercskapcsoló jeleiből való Step-Dir átalakítást, ami ugye a a 4 unipoláris tekercs megfelelő sorrendben való kapcsolgatása eredetileg.

Mivel ez a cuccom már megvan összerakva és a léptető motor lépegetése miatt túl sok rezgés ment át a képbe, így szervóra fogom cserélni, ami nem fog ilyen durván lépkedni, meg jó nagy sebességet is el tudok vele érni, gyorsan tekerje a csövet, ezáltal.

Ma a szervó panelt is bekötöm, ami elvileg már OK, és egy szervó motor mozgatást megtesztelek még a szobában, az idő amúgy is elég felhős, az átalakító kód a következő:

#define INPUT0_PIN A0
#define INPUT1_PIN A1
#define INPUT2_PIN A2
#define INPUT3_PIN A3

#define OUTPUT_STEP A4
#define OUTPUT_DIR A5

#define INPUT0 digitalRead(INPUT0_PIN)
#define INPUT1 digitalRead(INPUT1_PIN)
#define INPUT2 digitalRead(INPUT2_PIN)
#define INPUT3 digitalRead(INPUT3_PIN)


int prev_stat=3; // 0b00000011
int curr_stat=0;

int new_stat() {
return (INPUT3<<3)|(INPUT2<<2)|(INPUT1<<1)|(INPUT0<<0);
}

int up_stat() {
prev_stat+=prev_stat&0x0F;
}

void step_up() {

digitalWrite(OUTPUT_DIR, HIGH);
digitalWrite(OUTPUT_STEP, HIGH);
digitalWrite(OUTPUT_STEP, LOW);

}

void step_dn() {

digitalWrite(OUTPUT_DIR, LOW);
digitalWrite(OUTPUT_STEP, HIGH);
digitalWrite(OUTPUT_STEP, LOW);

}


void setup(void) {

pinMode(OUTPUT_STEP, OUTPUT);
pinMode(OUTPUT_DIR, OUTPUT);
pinMode(INPUT0_PIN, INPUT);
pinMode(INPUT1_PIN, INPUT);
pinMode(INPUT2_PIN, INPUT);
pinMode(INPUT3_PIN, INPUT);
digitalWrite(OUTPUT_DIR, LOW);
digitalWrite(OUTPUT_STEP, LOW);
prev_stat=new_stat();

}


void loop () {

while (1) {

curr_stat=new_stat();

if (curr_stat!=prev_stat) {

if (curr_stat==up_stat()) step_up();
else step_dn();

prev_stat=curr_stat;
}

}
}


A képen látható a step jel, az eredeti tekercsjelek felett, az oszcilloszkópon.

http://kepfeltoltes.hu/150911/PICT2743_kicsi_www.kepfeltoltes.hu_.jpg


Csuhás | 6650    2015-09-04 07:05:00 [950]

Picit hasonló hibával én is szívtam már. A jtag debuggot sem célszerű véletlenül bekapcsolni a konfigban mert az érintett lábak furcsán kezdenek viselkedni.

Előzmény: elektron, 2015-09-04 03:26:00 [949]


elektron | 15859    2015-09-04 03:26:00 [949]

Megtaláltam a hibát, az adott lába a procinak kimenetnek volt definiálva és azért nem tudott rajta megjelenni a potiból e jel, csak oylan 0.09V ... én meg a programban a rutinokban kerestem hogy mi lehet a hiba, de ott nem volt hiba azért is akartam már megzakkanni lassan, na de most már ujjé van.

Előzmény: elektron, 2015-09-04 01:23:00 [948]


elektron | 15859    2015-09-04 01:23:00 [948]

Atmega168 processzorból szeretnék egy ADC adatot kiolvasni, de nem megy, C-ben megy, assemblerben kellene, valami tuti működő kis példa, ami sorosra esetleg ki is írná, ha valaki tud ilyet, megköszönném. 2 napja kinlódok vele már, kezdem unni.


Törölt felhasználó    2015-08-21 18:07:00 [947]

Én maximum arduino szinten vagyok csak c vel kapcsolatba arduino ide környezetben...

Előzmény: NewUser, 2015-08-21 11:06:00 [943]


NewUser | 132    2015-08-21 11:34:00 [946]

Ez a módszer, csak akkor működik, ha külső órajel forrás lett kiválasztva a fusebitekkel. A HVSP macerásabb, de mindent alaphelyzetbe lehet vele állítani.

Előzmény: lazi, 2015-08-21 11:10:00 [944]


lazi | 1489    2015-08-21 11:12:00 [945]

Nekem fordításnál jelzi a laphatár átlépést. Lebegőpontos változónál problémázott, ha van olyanod azt nézd át.

Előzmény: Csuhás, 2015-08-10 13:36:00 [940]

lazi | 1489    2015-08-21 11:10:00 [944]

Kell hozzá egy külső órajel, azzal kell megtáplálni, utána programozható. Mezei generátor is jó, néhány mega kell, hogy ne őszülj meg mire letöltődik. Órajel forrást pontosan állítsd be utána a következő programozásnál.

Előzmény: Törölt felhasználó, 2015-08-21 09:30:00 [941]


NewUser | 132    2015-08-21 11:06:00 [943]

Kell hozzá egy HVSP programozó. Neten található hozzá infó. Amit én használtam, egy ATMEL kontroller + 1 NPN tranzisztor (12V-ot kapcsolja a RESET lábra). A forráskódot felraktam ide: FuseBitRepair

Előzmény: Törölt felhasználó, 2015-08-21 09:30:00 [941]


nyarfa | 971    2015-08-21 10:09:00 [942]

Olvasd el az adatlapot, van benne egy leírás az alaphelyzetbe állításról. Ha jól emlékszem 12V kell hozzá, de én sem csináltam ilyet csak rémlik valami, mintha olvastam volna.

Előzmény: Törölt felhasználó, 2015-08-21 09:30:00 [941]


Törölt felhasználó    2015-08-21 09:30:00 [941]

Digispark spi akartam bootloadert cserélni de a config bitek rosszul voltak beálitva vagyis kizártam magam ATtiny85 böl hogy lehet vissza álitani hogy ujra lehesen programozni?


Csuhás | 6650    2015-08-10 13:36:00 [940]

Van itt bascom használó rajtam kívül? Hogyan lehetne egy cross-reference táblázatot kinyerni fordítás után? A laphatárt meghaladó programom időnként misztikus hibákat produkál. Valahol módosítok egy apróságot, és valami kritikus rész pont belecsúszik a laphatárba és hirtelen nem működik a program egy ritkán használt ága, én pedig kiadom a kezemből mert nem veszem észre a hibát. Valahogy el szeretném kerülni ezeket a szívásokat.


elektron | 15859    2015-07-30 21:33:00 [939]

Érthető, majd jön valaki lehet és elvállalja.

Előzmény: n/a (inaktív), 2015-07-30 21:06:00 [938]


n/a (inaktív)    2015-07-30 21:06:00 [938]

Meglehet, csak mivel nekem mechanikailag készen van a mozgató, így adott méretre kéne áttervezni , átalakítani. Ezért kérdeztem hogy lehet-e, és ha igen akkor vállalja e valaki:)

Előzmény: elektron, 2015-07-30 20:58:00 [937]


elektron | 15859    2015-07-30 20:58:00 [937]

Lehet van ilyen készen is nem ilyen szendvics alakban, csak keresgélni kell.

Előzmény: n/a (inaktív), 2015-07-30 20:48:00 [936]


n/a (inaktív)    2015-07-30 20:48:00 [936]

Mutatni csak úgy tudom hogy feltettem a dokut:
PDF
Nekem az is jó hogy valaki ez alapján, ír, vagy tervez egy jobbat, természetesen nem ingyen:)


elektron | 15859    2015-07-30 20:40:00 [935]

Konkrétan azt mutasd meg, hogy mit is kellene megcsinálni. Az ARDUINO Due lehet azért kell hozzá, mert a TFT-t kezelni gyors processzor kellhet, vagy egyéb tevékenységhez is.

Előzmény: n/a (inaktív), 2015-07-30 20:36:00 [934]

n/a (inaktív)    2015-07-30 20:36:00 [934]

Az össze kapcsolási rajz megvan, de az Uno helyett hogy mi kell én nem tudom.
Tehát minden periféria külön kapcsolási rajzon megvan, szabadon felhasználható.

Előzmény: elektron, 2015-07-30 20:26:00 [933]


elektron | 15859    2015-07-30 20:26:00 [933]

Meg lehet csinálni az biztos, csak kérdés mennyi darab kell belőle, mert azért átrajzolni egy ilyet nem kevés idő, persze ha már valakinek van valami hasonló rajza készen, abból alakítva lehet egyszerűbb, meg ez már működik, míg egy prototípusnál lehetnek hibák is elsőre.

Előzmény: n/a (inaktív), 2015-07-30 20:21:00 [932]


n/a (inaktív)    2015-07-30 20:21:00 [932]

Sziasztok!
Van e lehetőség arra, hogy egy ArduinoDue-ra megírt programot, átrakni egy nem ilyen fejlesztői izébe, van rajta egy tft kijelző, két léptető vezérlő, ez egy eléggé fura " szendvics".
A lényeg hogy valahogy méretileg optimalizálni kellene.
Van erre lehetőség? az egész egy opensource-os megoldás minden dokumentáció megvan hozzá.
Esetleg vállakozót is keresnék egyúttal
Köszönöm!


tomtoled | 417    2015-07-27 21:09:00 [931]

Mindenkinek!


tomtoled | 417    2015-07-27 21:07:00 [930]

Ok köszönöm , jobban nem szeretnék belemenni , mert akkor meg kelleni tanulnom az egészet , de ez csak stepper motor hajtásához kell ,ezért megelégszem ennyivel.Köszönöm!
Említettem , hogy van belőle egy pár csak az egyik nem működött ezért próbáltam , helyrehozni.
Holnap mindenképpen megnézem , hhogy sikerül-e.
Mégegyszer Köszönöm!

Előzmény: RogerCo, 2015-07-27 20:57:00 [928]


elektron | 15859    2015-07-27 20:58:00 [929]

Ha az UNO-t beprogramozod egy programozó kóddal, utána azzal mindnet meg leht csinálni, mint programozóként hazsnálni, törölni is lehet, meg FUSE biteket is, vannak erre különböző programok, amik tudják kezelni.

AZ IDE segítségével ies lehet csinálni, mert az is egy programozó szoftvert hazsnál, ha az be van állítva neki, amit akarsz, FUSE bitek, stb, van egy külön file, ott lehet csinálni nem szokványos dolgokat is, csak az már eléggé hackelés.

Előzmény: tomtoled, 2015-07-27 20:54:00 [925]


RogerCo | 1155    2015-07-27 20:57:00 [928]

Törölni nem tudod. Ha nem az ARDUINO-val programozod, hanem direktben, pl ISP programozóval, vagy Az ATMEL Studio-val ISP-n, az eleve felül vágja a Bootloader-t így több helyed marad a hasznos kódnak.

Előzmény: tomtoled, 2015-07-27 20:54:00 [925]


tomtoled | 417    2015-07-27 20:57:00 [927]

Most már meg lesz köszönöm !
Szerencsére van pár darab

Előzmény: RogerCo, 2015-07-27 20:54:00 [924]


tomtoled | 417    2015-07-27 20:56:00 [926]

Akkor mégkétszer
Bocsánat!
Még annyi, ha így megcsinálom , akkor tudom törölni is a bootloader-t ?

Előzmény: elektron, 2015-07-27 20:51:00 [922]


tomtoled | 417    2015-07-27 20:54:00 [925]

Akkor mégegyszer.
Bocsánat!
Még annyi, ha így megcsinálom , akkor tudom törölni is a bootloader-t ?

Előzmény: tomtoled, 2015-07-27 20:53:00 [923]

RogerCo | 1155    2015-07-27 20:54:00 [924]

Egymagában nem lehet. kell egy másik Uno, vagy egy ISP programozó, és akkor 6 vezetéken fel tudod programozni.

Előzmény: tomtoled, 2015-07-27 20:50:00 [921]


tomtoled | 417    2015-07-27 20:53:00 [923]

Még annyi, ha így megcsinálom , akkor tudom törölni is a bootloader-t


elektron | 15859    2015-07-27 20:51:00 [922]

Jobboldalon a hozzászólás fejrészben a "Válasz " gombot, ha megnyomod, akkor lehet látni, hogy mire válaszolsz.

Előzmény: tomtoled, 2015-07-27 20:50:00 [921]


tomtoled | 417    2015-07-27 20:50:00 [921]

Értem , akkor eléggé elnéztem,
azt gondoltam , hogy 1magában is meg lehet csinálni


tomtoled | 417    2015-07-27 20:47:00 [920]

Igen sajátjába , a másikkal működik


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

Időrend:
Oldal 6 / 25 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   2  3  4  5  6  7  8  9  10   Következő ►  Utolsó ►|


 ◊