HobbyCNC fórum
  v0.9.2.4

Fórum betekintő Fórum címe: http://forum.hobbycnc.hu



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

Rekalaca kezeli! :))


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

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

M.L. | 217    2016-04-02 19:25:00 [989]

Egyelöre hibaüzeneteket kapok. Megpróbálom kijavítani. Vagy ha Neked nincsenek hibaüzenetek, el tudnád küldeni e-mailben az .ino fájlt?

Előzmény: hidroponi, 2016-04-01 17:18:00 [984]


M.L. | 217    2016-04-01 21:14:00 [988]

A bekötés nem gond, azt a részét még érem is.

Előzmény: hidroponi, 2016-04-01 17:18:00 [984]


M.L. | 217    2016-04-01 21:05:00 [987]

Csak annyi a bajom, hogy az esztergámhoz szeretnék digitális kijelzőt csinálni Arduino Uno-val. Van 3 tolómérőm. Azokat szeretném dekódolni. Kiírni egy LCD-re, hogy jobban lássam. A neten találtam egy programot ami 1 tolómérőt tud kiolvasni. Ezt a programot szeretném átalakítani, hogy tudjon 3 tolómérőt dekódolni. Röviden ennyi.

Előzmény: elektron, 2016-04-01 15:42:00 [983]


M.L. | 217    2016-04-01 20:59:00 [986]

Köszönöm, sajnos ma már nem tudom kipróbálni. Közbejött valami, de alig várom, hogy teszteljem.

Előzmény: hidroponi, 2016-04-01 17:18:00 [984]


hidroponi | 449    2016-04-01 17:19:00 [985]

koszi, odaraktam.

Előzmény: gab27, 2016-04-01 07:27:00 [982]

hidroponi | 449    2016-04-01 17:18:00 [984]



ide feltoltottem

ez csak annyit csinal, hogy 3 tolomero adatait
lekeri es kiirja. illetve csinaltam egy results tombot amibe bele is pakolja az egyes eszkozok eredmenyeit. szintaktikailag ugy nez ki jo. arra hogy jol mukodik is eszkozok hianyaban nem tudok garanciat vallalni.

(nem tudom mennyire vilagos, azt hogy az arduinod melyik digi bemenetere kototted a tolomeroidet azt a clockpin es datapin tombok ertekeivel tudod beallitani. most ugy nezki az elso mero a 4-5, a masodik a 6-7 es vegul 8-9)

sok sikert!

Előzmény: M.L., 2016-04-01 06:40:00 [981]


elektron | 13153    2016-04-01 15:42:00 [983]

Mi is a bajod végül is , mi nem jó, vagy érthető ?

Előzmény: M.L., 2016-04-01 06:40:00 [981]


gab27 | 436    2016-04-01 07:27:00 [982]

Próbáld meg itt, sokaknak bevált az elmúlt bő 10 évben.

Így fog kinézni a kódrészlet, ha a C nyelvhez tartozó kiemelést választod.

Előzmény: hidroponi, 2016-03-31 21:59:00 [980]


M.L. | 217    2016-04-01 06:40:00 [981]

Az nagyon jó lenne.


hidroponi | 449    2016-03-31 21:59:00 [980]

holnap ha lesz egy kis idom, megprobalom leirni..

Előzmény: M.L., 2016-03-31 21:00:00 [979]


M.L. | 217    2016-03-31 21:00:00 [979]

Így kellet volna?
[code]
int i;
int s;
int sign[] = {0,1,2};
long value[] = {0,1,2};
float result[] = {0,1};
int clockpin[] = {4,6,8};
int datapin[] = {5,7,9};
unsigned long tempmicros;
[/code]

Előzmény: hidroponi, 2016-03-31 20:31:00 [977]


M.L. | 217    2016-03-31 20:37:00 [978]

Dehogynem
a 7. és 8. sor pl.
Aztán a Serial.begin után
A void loopután is az áll amit javasoltál.
A mult héten kezdtem a programozással foglalkozni. Tudom ez nem kezdő feladat, de erre lenne szükségem.


hidroponi | 449    2016-03-31 20:31:00 [977]

nem latom, hogy alkalmaztad volna azokat a dolgokat, amiket emlitettem.

a pin beallitasokkor nem hivatkozol a tomb adott elemere es a hasznalatkor sem.

Előzmény: M.L., 2016-03-31 20:14:00 [976]


M.L. | 217    2016-03-31 20:14:00 [976]

úgy gondolom, már csak a decode rész ami nincs rendben. Legalább is remélem.


M.L. | 217    2016-03-31 20:11:00 [975]

Jól elszúrtam a topicot

Előzmény: M.L., 2016-03-31 20:09:00 [974]

M.L. | 217    2016-03-31 20:09:00 [974]

[code]
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);

}

[/code]


M.L. | 217    2016-03-31 20:08:00 [973]

[code]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);

}


[/code]

Előzmény: hidroponi, 2016-03-31 19:45:00 [972]


hidroponi | 449    2016-03-31 19:45:00 [972]

tedd [code] és [/code] köze a programot

Előzmény: M.L., 2016-03-31 19:23:00 [971]


M.L. | 217    2016-03-31 19:23:00 [971]

Nekem is kiszedte a szögletes zárójeleket az i-vel együtt. Van valamilyen megoldás arra, hogy feltegyem a programot?


M.L. | 217    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 | 974    2016-03-31 19:11:00 [969]

Köszönöm mindenkinek


hidroponi | 449    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 | 449    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 | 1035    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 | 449    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]


M.L. | 217    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 | 449    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: M.L., 2016-03-31 09:04:00 [961]


M.L. | 217    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]


M.L. | 217    2016-03-31 09:01:00 [960]

Itttaláltam.

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


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

Nem akarsz nagyobbat álmodni? Android DRO

Előzmény: M.L., 2016-03-30 19:41:00 [954]

ebalint | 987    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 | 974    2016-03-31 05:47:00 [957]

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

Előzmény: M.L., 2016-03-30 19:41:00 [954]


M.L. | 217    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.


GPeti | 202    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: M.L., 2016-03-30 19:41:00 [954]


M.L. | 217    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 | 13153    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 | 13153    2015-09-11 12:43:00 [952]

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


elektron | 13153    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 | 4313    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 | 13153    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 | 13153    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.


cree | 555    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 | 123    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 | 1330    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 | 1330    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: cree, 2015-08-21 09:30:00 [941]

NewUser | 123    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: cree, 2015-08-21 09:30:00 [941]


nyarfa | 870    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: cree, 2015-08-21 09:30:00 [941]


cree | 555    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 | 4313    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 | 13153    2015-07-30 21:33:00 [939]

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

Előzmény: Fidomaster, 2015-07-30 21:06:00 [938]


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

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