HobbyCNC fórum
  v0.9 alpha

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

hidroponi | 413    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 | 413    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 | 413    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 | 967    2016-03-31 19:11:00 [969]

Köszönöm mindenkinek


hidroponi | 413    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 | 413    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 | 1019    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 | 413    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 | 413    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 | 3805    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 | 930    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 | 967    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 | 12821    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 | 12821    2015-09-11 12:43:00 [952]

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


elektron | 12821    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 | 3805    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 | 12821    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 | 12821    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 | 120    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 | 1082    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 | 1082    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 | 120    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 | 868    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 | 3805    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 | 12821    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]


Fidomaster | 52    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 | 12821    2015-07-30 20:58:00 [937]

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

Előzmény: Fidomaster, 2015-07-30 20:48:00 [936]


Fidomaster | 52    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 | 12821    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: Fidomaster, 2015-07-30 20:36:00 [934]

Fidomaster | 52    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 | 12821    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: Fidomaster, 2015-07-30 20:21:00 [932]


Fidomaster | 52    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 | 351    2015-07-27 21:09:00 [931]

Mindenkinek!


tomtoled | 351    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]


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ó ►|