Samogradnja - općenito

Arduino - projekti, ideje, savjeti, problemi

hrmnk uto 10.9.2019 21:10

Zamolio bih poznavatelje programiranja Arduino aplikacije da pogledaju ovaj Sketch i upute me gdje griješim. Naime želio bih napraviti napravu kojom bih mogao raditi slijedeće. Kad se preko tastature unese neki broj, isti je vidljiv na LCD-u. Kad se pritisne tipka 1,stepper motor napravi koraka koliko je određeno naredbom myStepper.step Unesena vrijednost mora ostati spremljena u EEPROM. Trenutno nije bitno da se kontra smijer upravlja sa vrijednostima sa tastature. Kontra smijer se može postavit programski i uvijek je isti.

(imajte u vidu da sam ja skoro šezdesetgodišnjak i da mnoge stvari mi nisu baš sjele).

 

platforma je ARDUINO UNO V.3

 

// program za pokretanje step motora napred nazad
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Stepper.h> //including stepper motor library
#include <EEPROM.h>

int button1Pin = A0; // (u ovoj verziji koda koristi se analogni ulaz kao digitalni)
int button2Pin = A1; // (u ovoj verziji koda koristi se analogni ulaz kao digitalni)
int stepIN1Pin = 10;
int stepIN2Pin = 13;
int stepIN3Pin = 12;
int stepIN4Pin = 11;
int stepsPerRevolution = 2060; // amount of steps per revolution

//char password[4];
char dist[4];
int j=0;
char customKey=0;

 

const byte ROWS = 4;
const byte COLS = 4;

char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Stepper myStepper(stepsPerRevolution, stepIN2Pin, stepIN4Pin, stepIN3Pin, stepIN1Pin);
void setup(){
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
myStepper.setSpeed(15);
lcd.backlight();
lcd.init();
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){

//lcd.clear();
lcd.setCursor(0,0);
// lcd.print(customKey);
for(int j=0;j<4;j++)
EEPROM.write(j,customKey);
for(int j=0;j<4;j++)

dist[j]=EEPROM.read(j);
//j=EEPROM.read(j);

lcd.print( dist[j]);
}
{
int button1State, button2State;
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
// for(int j=0;j<4;j++)
// dist[j]=EEPROM.read(j);
// lcd.clear();

// lcd.print( dist[j]);

if (((button1State == LOW) && !(button2State == LOW))) // if we're pushing button 1 OR button 2
myStepper.step(-stepsPerRevolution* dist[j]);  // ova naredba ne radi motor se uvijek vrti 10 revolucija bez obzira na vrijednost tastature
// myStepper.step(stepsPerRevolution*2);     // ova naredba radi ali ne očitava vrijednost sa tastature
if (((button2State == LOW) && !(button1State == LOW))) // if we're pushing button 1 OR button 2
myStepper.step(-stepsPerRevolution/2);



}
}

koska182 sri 11.9.2019 08:31

Neke stvari mi nisu jasne:

sa funkcijom 

char customKey = customKeypad.getKey();

dobiješ vrijednost tastature, koja je char (veličina 8 bitova=1 byte)

a funkcija EEPROM.write(j,customKey);

to zapiše na 4 mjesta u eeprom? zašto?

i onda opet to sve poročitaš i zapišeš u polje dist[j]=EEPROM.read(j);

 

i onda zavrtiš motor naredbom 

myStepper.step(-stepsPerRevolution* dist[j]);?

pitanje je koja je vrijednost tu dist[j]? vrijednost varijable "j" ti je j u tom trenutku 4 i na polju dist[4] nemaš ništa zapisano.

probaj stavit fiksno dist[0], znači vrijednost koja je zapisana na prvu adresu u EEPROM-u. ili stavi j=0; nakon što pročitaš stanje tipkala.

i mislim da imaš višak zagrada (linija 60 i 78)

 

Pozdrav!

hrmnk sri 11.9.2019 10:41

Ma nisam ja programer. Ovo sam skalupio od nekoliko primjera koje sam pronašao na internetu i kombinacijom određenih naredbi probao napravit program koji bi mi nakon pritiska na tipku pomknuo radnu traku za onoliko mm koliko napišem pomoću tastature. Zapeo sam na ovom dijelu gdje je trebalo pročitat vrijednost u memoriji i tu vrijednost ubacit u naredbu

 

 

myStepper.step(-stepsPerRevolution* dist[j]);

 

pokušao sam na par načina ali nisam uspio. Probat ću kasnije napravit ove preinake pa javim što sam dobio. inaće cijela ideja je na skici.

 

Meni bi ustvari trebalo da ja mogu upisat neku vrijednost i recimo stisnem tipku "A" i to se umemorira. Dlje je postupak kao što sam gore napisao, ali nisam uspio dobit dvocifrenu ili trocifrenu vrijednost  upisa preko keypad-a već mi svaki put  prikaže samo jednocifreni broj. Znaći imam dosta problema (zbog mog neznanja) ali pokušavam riješiti dio po dio. Kao što rekoh stariji sam čovjek i nisam vičan programiranju ali eto pokušavam naučit nešto novijega osim tranzistora i elktronskih cijevi.

 

hrmnk sri 11.9.2019 14:28

Da recimo želim da se traka pomakne 50 mm upišem 50 i svaki put kad stisnem tipku motor se pomakne za taj iznos. znači u samom kodu treba postojati naredba koja će taj broj pretvorit u broj koraka motora. Broj koraka po punom okretu motora je poznat, Opseg kruga valjka koji pokreće traku isto je poznat. mislim poznat . Za sad je to samo imaginarna vrijednost ali recimo ti parametri se postave na neku stvarnu vrijednost i ne mijenjaju se. Osim same dužine pomaka. Za to mi je dovoljna trocifrena vrijednost dužine koju sam upisujem preko tastature. U stvari to je i jedini parametar koji mora biti promjenjiv. Bilo bi super kad bi se ta upisana vrijednost dala memorirati i po potrebi mijenjati. 

 

Npr.

 

235 utipkam na tastaturi pa recimo "A" i to je spremljeno. Kad pritisnem taster motor napravi koraka taman toliko da se transportna traka pomakne za 235mm, ili neku drugu vrijednost koja je napisana preko tastature. Znači imam mogučnost beskonačnog ponavljanja postupka svaki put kad pritisnem tipkalo a da prije toga ne moram ponovno upisivati recimo ovih 235 ili slično. znaći upisujem od 1 do 999 ili 001 do 999 već kako to programski mora biti . sada recimo želim promjeniti vrijednost. Pritisnem npr "#" i upišem novu vrijednost, recimo 025 ili 25 stisnem "A" i ta nova vrijednost je aktivna sve do ponovne promjene. Recimo takav nekakav način rada step motora. Druga tipka se koristi za kontra smjer vrtnje i nije uvjetovana nikakvim upisivanjima. tj. kad je držim stisnutu motor se vrti kontra sve dok ju ne otpustim.

 

Konkretno u mom slućaju motor treba 2060 koraka za jedan okretaj. Recimo da je opseg valjka i trake 100mm (50mm za pola kruga), kad upišem preko tastature 50, motor treba napraviti 1030 koraka.

koska182 sri 11.9.2019 16:12

Evo novi kod koji nije testiran, ali u teoriji bi trebao funkcionirati.

Definicije pinova i LCD-a nisam ništa dirao.

Ono što sam uveo je prilikom setup-a da pročita zadnju spremljenu vrijednost u eeprom-u i da bude spreman za rad. moglo bi biti problema prilikom prvog paljena, jer neznam koje su mu default vrijednostu u eeprom-u.

dodao sam i prepoznavanje tipki za unos i potvrdu unosa.

program čeka unos tipke i kad se unese "#" ulazi u programobilni mod (ispisuje na lcdu ""enter dist:", te u donjem redu ispisuje tipke koje se kasnije unose.

daljnim unosom znamenki svaka se zapisuje u polje "digits []" sve dok se na tipkovnici ne pritisne "A".

kada se pritisne "A", unešene znamenke se spremaju u eeprom, svaka znamenka na svoju poziciju (to bi se moglo i bolje riješiti) i generira se varijabla "distance" koja će iz unešenih znamenki napraviti broj koji je od 0-999.

nakon toga pritiskom na tipkala okreces traku. jedino što ces ti ubaciti korekcijski faktor u kod tako da brojeve od 0-999 konvertiraš u centimetre.

 

myStepper.step(-stepsPerRevolution* distance*"korekcijski_faktor");

 

 

Molim ekipu na forumu, ako ima kakvih primjedbi i sugestija nek se slobodno uključe u problematiku.

 

 

 

 

// program za pokretanje step motora napred nazad
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Stepper.h> //including stepper motor library
#include <EEPROM.h>

int button1Pin = A0; // (u ovoj verziji koda koristi se analogni ulaz kao digitalni)
int button2Pin = A1; // (u ovoj verziji koda koristi se analogni ulaz kao digitalni)
int stepIN1Pin = 10;
int stepIN2Pin = 13;
int stepIN3Pin = 12;
int stepIN4Pin = 11;
int stepsPerRevolution = 2060; // amount of steps per revolution

//char password[4];
char dist[4];
int j=0;
char customKey=0;

 

const byte ROWS = 4;
const byte COLS = 4;

char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Stepper myStepper(stepsPerRevolution, stepIN2Pin, stepIN4Pin, stepIN3Pin, stepIN1Pin);

void setup(){
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
myStepper.setSpeed(15);
lcd.backlight();
lcd.init();
const byte entryMaxSize = 3; //maksimalan broj znamenki 0-999
static char digits[entryMaxSize + 1]; // array gdje cemo spremati unešene znamenke, treba nam još jedno ekstra mjesto za znak za terminaciju "\0"
bool a = true; // varijabla koja označava unošenje broja

//čitanje iz eeproma zadnju spremljenu vrijednost; kad se arduino upali da ostane na zadnjoj podešenoj vrijednosti
for(int i=0;i<entryMaxSize;i++){
digits[i]=EEPROM.read(i);
}
long int distance = atol(digits); //konverzija unešenih znakova u jednu brojku
//ispisivanje učitanih vrijednosti
lcd.clear();
lcd.print("Dist set:");
lcd.setCursor(0, 1); //lcd u drugi red
for (i = 0; i < entryMaxSize; i++) {
lcd.print(digits[i]);
}
}


void loop(){
static byte x; // index znamnki

char key = keypad.getKey();
if (key != NO_KEY) // Check for a valid key.
{
switch (key)//prouči malo switch-case funkcije u C-u... ako imaš vremena i volje učiti 
{
case '#': //ako je unešena znamenka "#"
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("enter dist:");
lcd.setCursor(0, 1); //lcd u drugi red
x = 0; // reset the position of array
a = true;
break;

case 'A':
if (a) // ako je u programibilnom modu
{
lcd.clear();
lcd.print("Dist set:");
lcd.setCursor(0, 1); //lcd u drugi red
for (i = 0; i < entryMaxSize; i++)
{
lcd.print(digits[i]);
EEPROM.write(i,digits[i]);
}
a = false; // izlaz iz programibilnog moda
long int distance = atol(digits); //konverzija unešenih znakova u jednu brojku

}
}
break;

default:
if (a)// ako je u programibilnom modu
{
// add key to userinput array and increment counter
if ( key >= '0' && key <= '9' ){ // key is of type char and has a value between 0 and 9 so do something with it.
digits[x++] = key; //zapisujemo pritisnutu vrijednost na poziciju x, te povecavamo poziciju da bi upisali sljedeću znamenku
digits[x] = '\0';
lcd.print( key ) ; // new print statement <<<<<<<<<<<<<<<<
}
}
break;
}
}

if (((button1State == LOW) && !(button2State == LOW))) // if we're pushing button 1 OR button 2
myStepper.step(-stepsPerRevolution* distance); // tu još unesi korekcijski faktor (ako je potrebno)
if (((button2State == LOW) && !(button1State == LOW))) // if we're pushing button 1 OR button 2
myStepper.step(-stepsPerRevolution/2);
}

hrmnk sri 11.9.2019 18:43

Probao sam ga verificirat ali mi izbacuje sljedeću poruku 'i' was not declared in this scope

 

for (i = 0; i < entryMaxSize; i++)  //ovdje ne znam da li dolazi ; na kraju. kad sm to stavio ond mi poruku prebacuje na sljedeći red //

lcd.print(digits[i]);

 

 

koska182 čet 12.9.2019 09:00

ajde prebaci linije koje se nalaze u setup() funkciji izvan nje.

znači prebaci sljedeće tri linije:

const byte entryMaxSize = 3; //maksimalan broj znamenki 0-999

static char digits[entryMaxSize + 1]; // array gdje cemo spremati unešene znamenke, treba nam još jedno ekstra mjesto za znak za terminaciju "\0"
bool a = true; // varijabla koja označava unošenje broja

 

u liniju 22, tj. u red iza:

char customKey=0;

 

 

Problem je što nemam instaliran arduino IDE, pa nemogu provjeriti ispravnost koda.

koska182 čet 12.9.2019 19:45

Natjerao si me da instaliram Arduino te probam kod.

Meni sad kompajlira bez greške, a sad dal' ce program raditi onak kak sam zamislio, neznam...

 

// program za pokretanje step motora napred nazad
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Stepper.h> //including stepper motor library
#include <EEPROM.h>

int button1Pin = A0; // (u ovoj verziji koda koristi se analogni ulaz kao digitalni)
int button2Pin = A1; // (u ovoj verziji koda koristi se analogni ulaz kao digitalni)
int stepIN1Pin = 10;
int stepIN2Pin = 13;
int stepIN3Pin = 12;
int stepIN4Pin = 11;
int stepsPerRevolution = 2060; // amount of steps per revolution

//char password[4];
char dist[4];
int i=0;
char customKey=0;
const byte entryMaxSize = 3; //maksimalan broj znamenki 0-999
static char digits[entryMaxSize + 1]; // array gdje cemo spremati unešene znamenke, treba nam još jedno ekstra mjesto za znak za terminaciju "\0"
bool a = true; // varijabla koja označava unošenje broja

const byte ROWS = 4;
const byte COLS = 4;

char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Stepper myStepper(stepsPerRevolution, stepIN2Pin, stepIN4Pin, stepIN3Pin, stepIN1Pin);
int button1State, button2State;
long int distance;

void setup(){
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
myStepper.setSpeed(15);
lcd.backlight();
lcd.init();

//čitanje iz eeproma zadnju spremljenu vrijednost; kad se arduino upali da ostane na zadnjoj podešenoj vrijednosti
for(int i=0;i<entryMaxSize;i++){
digits[i]=EEPROM.read(i);
}
distance = atol(digits); //konverzija unešenih znakova u jednu brojku
//ispisivanje učitanih vrijednosti
lcd.clear();
lcd.print("Dist set:");
lcd.setCursor(0, 1); //lcd u drugi red
for (i = 0; i < entryMaxSize; i++) {
lcd.print(digits[i]);
}
}


void loop(){
static byte x; // index znamnki

char key = customKeypad.getKey();
if (key != NO_KEY) // Check for a valid key.
{
switch (key)//prouči malo switch-case funkcije u C-u... ako imaš vremena i volje učiti
{
case '#': //ako je unešena znamenka "#"
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("enter dist:");
lcd.setCursor(0, 1); //lcd u drugi red
x = 0; // reset the position of array
a = true;
break;

case 'A':
if (a){ // ako je u programibilnom modu
lcd.clear();
lcd.print("Dist set:");
lcd.setCursor(0, 1); //lcd u drugi red
for (i = 0; i < entryMaxSize; i++){
lcd.print(digits[i]);
EEPROM.write(i,digits[i]);
}
a = false; // izlaz iz programibilnog moda
distance = atol(digits); //konverzija unešenih znakova u jednu brojku
}
break;

default:
if (a){ // ako je u programibilnom modu
// add key to userinput array and increment counter
if ( key >= '0' && key <= '9' ){ // key is of type char and has a value between 0 and 9 so do something with it.
digits[x++] = key; //zapisujemo pritisnutu vrijednost na poziciju x, te povecavamo poziciju da bi upisali sljedeću znamenku
digits[x] = '\0';
lcd.print( key ) ; // new print statement <<<<<<<<<<<<<<<<
}
}
break;
}
}

button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
if (((button1State == LOW) && !(button2State == LOW))) // if we're pushing button 1 OR button 2
myStepper.step(-stepsPerRevolution* distance); // tu još unesi korekcijski faktor (ako je potrebno)
if (((button2State == LOW) && !(button1State == LOW))) // if we're pushing button 1 OR button 2
myStepper.step(-stepsPerRevolution/2);
}

koska182 pet 13.9.2019 08:59

Nema problema. Drago mi je da radi.

 

ajde samo promijeni

bool a = true; // varijabla koja označava unošenje broja

u:

bool a = false; // varijabla koja označava unošenje broja

 

tako da pri pokretanju nije automatski u programibilnom modu, nego tek nakon pritiska na tipku "#"

 

i snimi video kad sve složiš :)

Tony1999 pon 23.9.2019 15:29

Bok

Ima li netko iskustva sa nRF24L01? Ne mogu uspostavit komunikaciju izmedu 2 modula, prije mi je bilo sve normalno radilo, i pospremio sam ih na 2 tjedna, i nakon toga vise se ne zele povezati. Probao sam testove s ove stranice, test na postu #29 prode na oba modula, dok test na postu #1 ne zeli. Kada probam poslat obican Hello World test, ili ne salje nista ili ako posalje posalje corruptan paket. Moze neki savjet? Probao sam zice mjenjat, prespajat sve ali ne radi

 

 

EDIT: nakon nekoliko sati igranja, proradio je, radio sve dok ga nisam zgasio da spojim gljivice, nakon toga ponovno ne zeli uspostavit komunikaciju. Sve mi se cini da nesto hardverski ne valja

 

 

Dex.pwn uto 24.9.2019 17:48

Na koji način pravilno koristiti I2C? Pitam za STM32 pločicu.

Naime, otvorim sam Wire library i tamo(gdje je definiran objekat Wire) promjenio da želim koristiti I2C2(pinovi B11 i B10, STM32F103C8), te sam u WireBase.h proširio buffer s 32 na 34 bajta(kako bi na AT24C32 mogao zapisati cijeli page iz jednog pucnja).

No izgleda da mi SH1106 library stvara problem. To je Lib za 1.3 OLED ekran. Pogledao sam library i našao da se Wire.begin(adresa) koristi dva puta unutar nje.

 

Prvo korištenje begin funkcije je u funkciji za podešavanje ekrana(pozivam ju iz setupa), drugo korištenje je unutar funkcije koja šalje komande ekranu.

 

 

Našao sam ovaj link -> http://wiring.org.co/reference/libraries/Wire/Wire_begin_.html

U njemu jasno piše da se begin funkcija poziva samo jednom iz setup funkcije. Ako upišemo adresu onda STM32 postaje slave, ako pozovem funkciju bez adrese(Wire.begin()) tad STM32 postaje master.

Pokušao sam ukloniti Wire.begin iz SH1106 no opet ne radi, jednostavno moram izbaciti library da bi komunikacija između radila.

 

 

@Stavio sam I2C scanner, pokrenem ga i dođe do Scanning... i tu stane.

Izvućem USB iz kompa(ugasim ga totalno) i ponovno ga upalim, kad gle ono radi.

Pronalazi 3 uređaja, kako i treba.

Ekran je 0x3C kao što je i do sad bio.

Jedino šta mi pada na pamet je to da kad izvućem USB, programator i dalje radi. Njegova masa je spojena s masom od svih modula.

Do prije koji dan je sve radilo kako treba.

Pločica s modula mi je bila na kućištu kompa, jučer odlučio dovršiti EEPROM lib kad ono ništa ne radi više.

Altpro12 čet 16.1.2020 17:50

Pozdrav ljudi.

 

izvinjavam se prije svega ako je bila sličan post prije, jer stvarno sam tražio i nisam mogao pronaći ništa slično.

Naime, prijatelju pomažem da napravi automatski otvaranje vrata kao školski projekat. 
nismo vični ni jedna ni drugi u istom pa ako mogu sa vas zamolim za pomoć. 
ideja je slijedeća.

Potrebno je napraviti kao kavez za ptice metalni velicine 1x1 metar. Kavez bi imao vrata drvena težine oko 2 kg, i ista bi se trebala otvarati automatski od 07:00 a zatvarati u 20:00. Sve bi trrbalo biti spojeno na 220v u utičnicubda kažem. Vrata bi se podizala na princip lifta, gore/dolje. E sad, mene brine prvo napajanje šta da uzmem tu, i motor koji da odaberem, koja jačina bi bila dovoljna da podiže toliko trska vrata?

 

Svaki savjet bi dobro došao jer imamo za isto da napravimo za nekih 15-20 dana.

 

hvala puno vam unaprijed 

Dex.pwn čet 16.1.2020 22:23

Neki stari motor od mašine, preko redukcije koja bi pokretala po "ravnom" zupčaniku. Na slični način radi otvaranje klizne kapije.
Treba ti i RTC, recimo DS3231, dva hall senzora i nekakav IC s kojim možeš DC naponom upravljati AC naponom.
Malo je to vremena za takav rad.

koska182 pet 17.1.2020 09:24

Malo si zakomplicirao sa motorom od veš mašine.

Jednostavnije mu zvuči motor od brisača na autu, ako može vrtiti prase, može dignuti i vrata od 2 kg.

radi na 12 V i lagano ga se upravlja sa H mostom.

 

Pretvarač sa 230Vac na 12Vdc, (Arduino UNO može raditi i sa 12V), 4 mosfeta za H bridge da može otvarat i zatvarat vrata, dva mikroprekidača ili nekih drugih senzora za krajnje položaje i naravno RTC.

A od mehanike kombinacija zupčanik/letva ili kolutura/sajla.

Nije ne izvedivo. Ovisno kolko dečki imaju znanja sa programiranjem...

 

Altpro12 pet 17.1.2020 21:01

Hvala Vam mnogo na odgovoru. Motora od brisača se nikad ne bih sjetio iskreno. Malo se gubim u komponentama pored motora. Nije li vam problem da mi pomognete oko sheme kako bi se to spojilo i oko komponenata, Npr linkovi za sve komponente sa ebaya bi mi bile od prevelike pomoći. Jer nisam siguran koje su to komponente. Ako ne, i sa ovim ste mi previse pomogli :)

Altpro12 pet 17.1.2020 22:18

Hvala ti mnogo. Nikad nisam radio sa pravim stvarima. To je bilo uglavnom neko sitno mjerenje temperature i očitavanje iste na display. Malo ke strah spajanja istog na struju hehe. A i kod kupovine komponenata, da li ću bas kupiti one prave :) sve u svemu sve pohvale i mnogo ti hvala unaprijed na pomoći :)

Altpro12 sub 18.1.2020 11:09

Pa u pravu ste. Malo se duze čeka. Gledao sam isto par stranica ima i dx.com, kažu da jako brzo dodje narudžba. Svakako ću pogledati na svim stranicama ovim vašim, ako budete mogli mi poslati općenite linkove a ja ću potražiti gdje ima da brže stigne :)