Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: úte zář 17, 2019 11:36 pm


Začátky s Arduinem

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Další

Začátky s Arduinem

Příspěvekod jan.westhuserlt » čtv pro 25, 2014 7:24 pm

Ahoj, při snaze o nahrání vzorového projektu (přiloženého k instalačnímu softwaru Arduina) se mi zobrazí tato chybová hláška: avrdude: stk500_getsync(): not in sync: resp=0x00
Používám software ve verzi 1.0.6., hardware je http://www.dx.com/p/nano-3-0-atmel-atme ... .VJw5-F4jA.

Trošku bych ocenil odkaz na ověřený software, ověřené vzory a podobně, dostal sem to z druhé ruky a není vůbec vyloučeno, že je problém v Softwaru. Hlavně je problém, že k tomu nemám periferie, takže potřebuji něco, co otestuji jen s pomocí té integrované testovací diody.

Děkuji.

PS: http://img24.cz/images/56362291040029911837.jpg v určitých detailech toho obrázku se ty desky liší, tak jsem pro jistotu tu svou ofotil.

http://forum.arduino.cc/index.php?topic=28223.0 a nic z tohoto nepomohlo
jan.westhuserlt
 
Příspěvky: 8
Registrován: čtv pro 25, 2014 6:03 pm

Re: Začátky s Arduinem

Příspěvekod TyTycko » pát pro 26, 2014 10:18 am

No chyba je v tom že ti ten převodník co máš zjevně ze spodní strany desky nekomunikuje s Atmelem.Párkrát sem to řešil výměnou diody co je ze spoda u stabilizátoru a jednou byl v háji stabilizátor.Otázka je jen taková do jaké míry se to vyplatí opravovat a jestli se spíš nevyplatí objednat jinou u číňana.Pokud umíš s mikropájkou a změřit si diodu a proměřit stabilizátor,tak je práce zadara :-)
Polánka 1560W (24v),8 x MoserBaer 195w,Tristar MPPT 60,NiCd 4x160Ah + 1x120Ah, PowerJack LF 5kW by Matěj
TyTycko
 
Příspěvky: 105
Registrován: pon zář 03, 2012 7:47 pm

Re: Začátky s Arduinem

Příspěvekod jan.westhuserlt » pát pro 26, 2014 12:04 pm

VYŘEŠENO:

Ovladačem to u mě nebylo, ten přiložený funguje správně (je jediný, který jsem instaloval)

Tak nakonec vyřešeno: u mě byl problém s nastavením komunikace... V Tools sem musel na záložce Board vybrat správnej typ desky, a u Serial Portu zvolit COM4.

Kdyžtak přikládám osvědčený ovladač. Instalace setupem, zvolte soubor CH341SER.INF.

http://www.ebastlirna.cz/modules.php?na ... d&id=45233

----

Ale hele, chtěl bych nějaký typ na zapojení a naprogramování zapojení s poťákem, prostě něco sofistikovanějšího :-) Mám jen tento základní program, kde mi bliká testovací "L" dioda, ale nemám k tomu žádné další periferie. :-)

Dá se tento program upravit i pro použití na mém NANU? http://www.arduino.cc/en/tutorial/potentiometer

http://img24.cz/images/74475244091290492011.jpg
Jinak, to origiální nano a to moje čínské mají probohezné porty... selský rozum mi říká, že je to na 99% procent jedno... pin 26 bude vždy 26, a je jedno, zda se označí číslem A0 anebo A7. takže tady je ten program, upravený pro mé NANO.

int potPin = 26; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int val = 0; // variable to store the value coming from the sensor

void setup() {
pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT
}

void loop() {
val = analogRead(potPin); // read the value from the sensor
digitalWrite(ledPin, HIGH); // turn the ledPin on
delay(val); // stop the program for some time
digitalWrite(ledPin, LOW); // turn the ledPin off
delay(val); // stop the program for some time
}

Kam mám ale fyzicky zapojit tu diodu, a jak určím, při jaké napěťové hodnotě se mi ta dioda zapne/vypne?
jan.westhuserlt
 
Příspěvky: 8
Registrován: čtv pro 25, 2014 6:03 pm

Re: Začátky s Arduinem

Příspěvekod ome » ned kvě 10, 2015 1:16 pm

Nazdar, potrebujem poradit s displayom arduina 16x02.
Zbastlil som si elektricmeter http://forum.mypower.cz/viewtopic.php?f=3&t=2057#p38992 pri pokusoch som mojou vinou odpalil arduino a display. Po vymene za obidva nove mi display zobrazuje necitatelne znaky. Arduino v serial monitore pracuje spravne. Skontroloval som vsetky kontakty od displaya az po nozicky cipu arduina, ok. Moze to byt ze mi cinan poslal display s cipom neeuropskej znakovej sady, alebo kde je podla vas chyba? Ten novy je presne taky ako povodny (spaleny).
Nemáte oprávnění prohlížet přiložené soubory.
500Wp seriovo balkon JZ a 960Wp paralelne strecha J a JV,
epsolar 2210, 24v 19xKPH 150 + 12xSunica 70 cca 3,3 kW/h, menice modif. sinus 1000W cina a PJ 3000W LF
ome
 
Příspěvky: 158
Registrován: úte čer 03, 2014 4:16 pm

Re: Začátky s Arduinem

Příspěvekod radeczek » ned kvě 10, 2015 6:36 pm

Hoj, jen tipuju: Jsou opravdu dobře připojení kontakty? proměřeno, že se žádný nedotýká vedlejšího? Jdou všichni do dobrého pinu na arduinu? Podobnou chybu mi to dělalo, když jsem měl špatný kontakt a třeba v průběhu vypadával.

Co opravdu doporučuju je "Arduino keypad shiled", což je shield s displayem a tlačítky, který se nasazuje přímo na arduino, takže odpadají špatné kontakty. Tlačítka jsou jako bonus ;)
radeczek
 
Příspěvky: 55
Registrován: stř črc 30, 2014 11:03 pm

Re: Začátky s Arduinem

Příspěvekod TyTycko » ned kvě 10, 2015 6:51 pm

Taky zkus nepoužité piny LCD připojit na GND,občas se stává že to nemá nulová data na D0-D3.
Polánka 1560W (24v),8 x MoserBaer 195w,Tristar MPPT 60,NiCd 4x160Ah + 1x120Ah, PowerJack LF 5kW by Matěj
TyTycko
 
Příspěvky: 105
Registrován: pon zář 03, 2012 7:47 pm

Re: Začátky s Arduinem

Příspěvekod kodl69 » pon kvě 11, 2015 2:28 pm

já tipuju přehozený vývody d4-d7 displeje s arduinem, něco podobnýho se mi povedlo taky, samoznaky neuvěřitelnýho typu. Ten údaj je tam stále, nebo to nějak se posunuje a mění? Základ je zkusit příklad co je u arduina (nemusí se dycky psát hello word :-)) ) a zkusit v LiquidCrystal lcd(12, 11, 5, 4, 3, 2); je to v pořadí RS, EN, D4, D5, D6, D7, vývod R/W displeje na gnd - kolikrát je jednodušší přepsat toto než pájet drátky...
Displayshield mám na pokusy taky, ale lepší je displej přes I2C, stačí dva dráty a je to, akorát jsem bojoval s knihovnou a vývody i2c převodníku (u některé knihovny jdou předefinovat, u některé ne...)
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3854
Registrován: sob črc 19, 2014 7:56 pm

Re: Začátky s Arduinem

Příspěvekod ome » pon kvě 11, 2015 3:46 pm

Dakujem vsetkym za pomoc. Bol to skrat na plosaku medzi D4 a D5. Na skrat som to nepremeriaval, moja chyba. Uz to funguje.
500Wp seriovo balkon JZ a 960Wp paralelne strecha J a JV,
epsolar 2210, 24v 19xKPH 150 + 12xSunica 70 cca 3,3 kW/h, menice modif. sinus 1000W cina a PJ 3000W LF
ome
 
Příspěvky: 158
Registrován: úte čer 03, 2014 4:16 pm

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » úte kvě 19, 2015 12:33 pm

Ahoj, právě jsem zprovoznil modul reálného času ds3231 a zadal správné údaje už si to správná data pamatuje i při odpojení napájení arduina. Korektně to vypisuje na seriovou linku, jak ale přiřadit údaj do proměnné - pro zápis ntřeba na SD, nebo jakoukoliv jinou činnost?

promenna_daum = displayTime(); // takhle to teda nefunguje

Díky



#include "Wire.h"
#define DS3231_I2C_ADDRESS 0x68
// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val)
{
return( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
return( (val/16*10) + (val%16) );
}



void setup()
{
Wire.begin();
Serial.begin(9600);
//set the initial time here:
// DS3231 seconds, minutes, hours, day, date, month, year
// setDS3231time(00,50,11,3,19,05,15);



}

void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte
dayOfMonth, byte month, byte year)

{

// sets time and date data to DS3231
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set next input to start at the seconds register
Wire.write(decToBcd(second)); // set seconds
Wire.write(decToBcd(minute)); // set minutes
Wire.write(decToBcd(hour)); // set hours
Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
Wire.write(decToBcd(month)); // set month
Wire.write(decToBcd(year)); // set year (0 to 99)
Wire.endTransmission();
}
void readDS3231time(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set DS3231 register pointer to 00h
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
// request seven bytes of data from DS3231 starting from register 00h
*second = bcdToDec(Wire.read() & 0x7f);
*minute = bcdToDec(Wire.read());
*hour = bcdToDec(Wire.read() & 0x3f);
*dayOfWeek = bcdToDec(Wire.read());
*dayOfMonth = bcdToDec(Wire.read());
*month = bcdToDec(Wire.read());
*year = bcdToDec(Wire.read());
}


void displayTime()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,
&year);
// send it to the serial monitor
Serial.print(hour, DEC);
// convert the byte variable to a decimal number when displayed
Serial.print(":");
if (minute<10)
{
Serial.print("0");
}
Serial.print(minute, DEC);
Serial.print(":");
if (second<10)
{
Serial.print("0");
}
Serial.print(second, DEC);
Serial.print(" ");
Serial.print(dayOfMonth, DEC);
Serial.print("/");
if (month<10)
{
Serial.print("0");
}
Serial.print(month, DEC);
Serial.print("/");
Serial.print("20");
Serial.print(year, DEC);
Serial.print(" ");
Serial.print(" Den v tydnu: ");
switch(dayOfWeek){
case 1:
Serial.println("Nedele");
break;
case 2:
Serial.println("Pondeli");
break;
case 3:
Serial.println("Utery");
break;
case 4:
Serial.println("Streda");
break;
case 5:
Serial.println("Ctvrtek");
break;
case 6:
Serial.println("Patek");
break;
case 7:
Serial.println("Sobota");
break;
}
}




void loop()
{
displayTime(); // display the real-time clock data on the Serial Monitor,
delay(1000); // every second
}
250w_gridfree
 
Příspěvky: 75
Registrován: pon zář 08, 2014 9:55 am

Re: Začátky s Arduinem

Příspěvekod rottenkiwi » úte kvě 19, 2015 1:00 pm

Ked to chcem vypisat do suboru na SD karte, ja to robim takto:

if ( Log_index == Max_buff )
{

// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
for ( int i = 0 ; i < Max_buff ; i++ )
{
for ( int j = 0 ; j < Max_sensor ; j++ )
{
dataFile.print( Log_buffer [i][j]);
dataFile.print(",");
}
dataFile.println ();
};

Log_index = 0;
dataFile.close();
// print to the serial port too:
Serial.println(dataString);
}
// if the file isn't open, pop up an error:
else {
Serial.println("error opening datalog.txt");
Log_index = 0;
};


}

To znamena napisat si novu funkciu get_Time()
a namiesto Serial.print dat dataFile.print, kde dataFile je typu File
a este je dobre si tam zvolit nejaky buffer a ten cely zapisat na koniec suboru,
inac to budem zapisovat niekolko krát viac, a stále otvarat a zatvarat subor.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2789
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » úte kvě 19, 2015 1:37 pm

void get_Time()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
}

datum = get_Time();

Díky za snahu, zdroják je to pro mne velmi složitý... prozatím by mi stačilo pracovat s proměnnou, nemusí se rovnou zapisovat

lcd.print(datum); // očekávám na LCD 14:33:20 19/05/2015

ale vono furt nic.
250w_gridfree
 
Příspěvky: 75
Registrován: pon zář 08, 2014 9:55 am

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » úte kvě 19, 2015 4:56 pm

Takže už je šet a furt nic, bude to bez logu a jdu na pivo.... Ještě jsem se nikdy nebabral s něčím tak dlouho...
250w_gridfree
 
Příspěvky: 75
Registrován: pon zář 08, 2014 9:55 am

Re: Začátky s Arduinem

Příspěvekod Frenky » úte kvě 19, 2015 5:45 pm

250w_gridfree píše:Takže už je šet a furt nic, bude to bez logu a jdu na pivo.... Ještě jsem se nikdy nebabral s něčím tak dlouho...


A to je teprve začátek, mě trvalo cca půl roku každý den tak 3 hodiny, nežli jsem alespoň trochu tušil o čem si programátoři vlastně povídají. :lol:

Chce to hodně trpělivosti a hodně studia :D
Přeji aby obého se dostávalo a úspěch se zajisté dostaví :mrgreen:
18x Solární panel JINKO SOLAR 225 Pmpp=225W, Regulátor STUDER VT-80, Střídač Studer XTM 4000-48, BSP, RCC, AKU 48V LFP200Ah, 2x AKU DURATHON E4815. Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou.
http//95.85.214.80, viewtopic.php?f=3&t=4809
Uživatelský avatar
Frenky
 
Příspěvky: 670
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Doubravička

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » úte kvě 19, 2015 6:00 pm

Nedalo mi to, došel jsem si do džbánku a hned se dostavily úspěchy, nyní sháním obdobu pro arduino, co bylo pro PHP $promenna = “rok” . “mesic” . “den”;

úspěšně jsem lokalizoval proměnné rok, mesic, den ---- jak je v arduinu spojit do jedné proměnné ? //předpokládám vysledek 150519

Díky... // taky su musím naučit používat ty ksiftíky :)
250w_gridfree
 
Příspěvky: 75
Registrován: pon zář 08, 2014 9:55 am

Re: Začátky s Arduinem

Příspěvekod ixo » úte kvě 19, 2015 6:05 pm

Najrýchlejšie je spýtať sa Googlu: https://www.google.sk/webhp?sourceid=ch ... %20strings
940 Wp, Pb OpZs 24V/300Ah, Tristar MPPT 60A, Meanwell 1 kW, PowerJack 5kW, Bratislava
Výkonnosť systému: http://homeinfo.sk/e?user=viktor
(Ne)návratnosť systému: http://tinyurl.com/cx74hkv
Zdieľaná databáza meničov: http://tinyurl.com/mx6gvsj
Uživatelský avatar
ixo
 
Příspěvky: 419
Registrován: stř říj 10, 2012 5:11 pm
Bydliště: Bratislava

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » úte kvě 19, 2015 6:25 pm

problém je, že mi to proměnné sečte a vyhazuje to "39"
250w_gridfree
 
Příspěvky: 75
Registrován: pon zář 08, 2014 9:55 am

Re: Začátky s Arduinem

Příspěvekod rottenkiwi » úte kvě 19, 2015 6:59 pm

Ak to chceme mat v jednej premennej, musi byt schopna to cislo uchovat, bez
nejakej hlasky: "bla bla overflow"
Ak je to taka premena a je kompatibilna s premennymi: rok, mesiac, den,
tak potom do premennej:
cely_Datum = rok * 10000 + mesiac * 100 + den;

a dame je vypisat bud na serial.print ( cely_Datum )
alebo dataFile.print ( cely_Datum)

alebo ked mame funkciu, ktora to zabrazi na LCD, tak napr.
vypis_na_LCD ( cely_Datum );

Ak by to neslo, tak este treba robit typecasting, nieco ako (long) premenna alebo (float) premenna.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2789
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » úte kvě 19, 2015 8:09 pm

Díky, s tím násobením je to dobrý nápad a funguje, v závislosti na čase mohu spouštět naplánované úkoly. jeden_den = hodina * 3600 + minuta * 60 + sekunda;
Atp.
250w_gridfree
 
Příspěvky: 75
Registrován: pon zář 08, 2014 9:55 am

Re: Začátky s Arduinem

Příspěvekod kodl69 » stř kvě 20, 2015 7:49 am

přetypování se to jmenuje, stálo mě to 6 hodin života při jiné příležitosti.
Pořád mi vycházelo 512*122= -3072 a ne 62464 . Pokud máme long a, int b,c, tak výsledek c=a*b přeteče, protože to bude int.... dokonce hodnota z analogovýho vstupu přepíše proměnou na int, ať je definováno cokoliv.
s přetypováním to vypadá takhle: c=(long)a * b - stačí přetypovat jednu proměnnou a je to správně. Jak je to při sčítání sem nezkoumal, ale není problém to přetypovat taky, a taky třeba na float, pokud se třeba dělí...
rottenkiwi to myslel původně jinak, že by vzniklo číslo,něco jako yymmddhhmmss což by do unsigned long vlezlo jistě, a dá se s tím pracovat, ale třeba počet sekund třeba od roku 1.1. 2010 je taky řešení - líp se plánují pravidelné operace.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3854
Registrován: sob črc 19, 2014 7:56 pm

Re: Začátky s Arduinem

Příspěvekod 250w_gridfree » stř kvě 20, 2015 9:08 am

Jednoduchý čítač s využitím eeprom, zbývá integrovat do solárního regulátoru... Zatím se to při odpojení vynuluje.

#include <EEPROM.h> //knihovna eeprom
int stovky = EEPROM.read(9); //načteme hodnotu stovek
int desitky = EEPROM.read(10); // načteme hodnotu desítek
float suma;
float prirustek;
int ulozeno;



void setup()
{
Serial.begin(9600);
//EEPROM.write(9,000); //nulujeme eeprom
//EEPROM.write(10,000); //nulujeme eeprom
}


void loop(){
Serial.print("Hodnota stovky : "); //vypisujeme hodnoty
Serial.print(stovky);
Serial.print(" ");
Serial.print("Hodnota desitky : ");
Serial.print(desitky);
Serial.print(" ");
if (desitky >= 100) { //když jsou desítky větší nebo rovno 100, zvětšíme stovky o +1, stačilo by ale ==100 v zápisu
stovky += 1;
EEPROM.write(9,stovky); //zápis do eeprom
desitky = 0; // desitky pocitame od zacatku
}


if (prirustek >= 10) { // ta sama operace jako vyse, zvetsujeme desitky o +10 prirustkem
desitky += 10;
EEPROM.write(10,desitky);
prirustek = 0;
}



prirustek += 0.5; //zvetšeni prirustku - simulujeme vykon
Serial.print("Hodnota prirustek : ");
Serial.print(prirustek);
suma = stovky*100 + desitky + prirustek; //pocitame celkovy vykon
ulozeno = stovky*100 + desitky;
Serial.print(" A mame vysledek : ");
Serial.print(suma);
Serial.print(" Ale v pameti ulozeno : ");
Serial.println(ulozeno); // zachytny bod po deseti ulozen v eeprom
delay(500); // cekame 0.5 s a jdeme na zacatek loop


}


Ještě přidám funkci denního výkonu, tzn. přidat proměnnou vykon_den a tuto např o půlnoci vynulovat

Je to ale dřina... díky všem za podporu
250w_gridfree
 
Příspěvky: 75
Registrován: pon zář 08, 2014 9:55 am

Další

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: CC [Bot] a 0 návštevníků

Reputation System ©'