|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2024 04 18, 04:12. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » Arduino platforma
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
|
Arduino platforma |
Parašytas: 2016 09 29, 08:29 |
|
|
|
as dar nepabudes, bet visgi matau jog 1024/0 bus nelabai apibrezta vieta.
savo kode as uzrasydavau:
Kodas: |
if(RawADC) temp=log(10000.0*((1024.0/RawADC-1))); else temp=0;
|
del RawADC==1024 galima nesijaudinti, nes 10-bit sistemoje to nebuna. |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 09 29, 08:45 |
|
|
|
LT_elektronas rašo: |
blah rašo: |
skaicuojant Temp = log(10000.0*((1024.0/RawADC-1))); gausi exception'ą:
Kai RawADC=1 tai gausi dalyba iš nulio (division by zero) 1024.0/RawADC-1 = 1024.0/1-1 = 1024.0/0
Kai RawADC=0 tai gausi logaritmo argumentą neigiamą t.y. log(-10240000), kas taip pat iššauks exception'ą |
Nuo kada atimties operacija vykdoma anksčiau nei dalyba? Dalyba ir daugyba turi prioritetą prieš sumavimo ir atimties operacijas. Dėl to problemas kels RawADC = 0 reikšmė (dalyba iš nulio 1024/0). Reikšmė 1 problemų nekels. |
Jo, šiektiek persistengiau |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 02, 13:48 |
|
|
|
Sveiki, neissiaiskinu kaip papadaryt jog programa gavus teigiama inputa atliktu 30 sec. rutina ir vel gristu i bndra rutina.
Noriu padaryt purkstuku testeri ir noriu jog paspaudus vienasyk migtuka valdiklis atliktu tarkim 30 sekndziu rutina ir sustotu, ir vel atliktu ta pat nuspaudus migtka vel |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 03, 09:59 |
|
|
|
#define MYGTUKAS1 3
#define nuspaustasMygtukas(mygtukas) (LOW==digitalRead(mygtukas))
void setup(){
pinMode(MYGTUKAS1, INPUT_PULLUP);
delay(10);
}
void loop(){
if(nuspaustasMygtukas(MYGTUKAS1)) rutina();
}
void rutina(){
uint32_t begin=millis();
//veiksmai rutinoje
while(30000>millis()-begin);
} |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 03, 20:39 |
|
|
|
Aciu uz pagalba, bandysiu kada ir si buda, bet siek tiek kitaip jau padariau |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 04, 19:19 |
|
|
|
Tai netiks jeigu valdiklis veiks nonstop ilgiau nei 49 dienas. Jei zaidimams, tai OK, bet jei planai rimtesni - pagooglink apie millis() "rollover". |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 04, 21:05 |
|
|
|
O kas kaip alternatyva. Berods pas mane bus sita beda. Arduinas logina 4 temperaturas i mysql ir mazdaug kas dvi paros pakimba. Ar imanoma rtc panaudoti vietoj mils () |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 04, 22:00 |
|
|
|
miegapele rašo: |
O kas kaip alternatyva. Berods pas mane bus sita beda. Arduinas logina 4 temperaturas i mysql ir mazdaug kas dvi paros pakimba. Ar imanoma rtc panaudoti vietoj mils () |
Neturetu kas dvi paras kibt del to, neatitinka periodas. Itark kazkokia kita vieta. Gal apskaiciaves laiko skirtuma paskui dar darai kazkokius papildomus skaiciavimus, kazka daugini ir kintamasis persipildo dar nepasiekus periodo ribos.
Kas del rolloverio, tai pagooglink "handling millis rollover", daug puslapiu randa, neabejoju jog yra sprendimas ir be RTC. |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 05, 09:46 |
|
|
|
Badas rašo: |
Tai netiks jeigu valdiklis veiks nonstop ilgiau nei 49 dienas. Jei zaidimams, tai OK, bet jei planai rimtesni - pagooglink apie millis() "rollover". |
Ir ka cia isradai? manai jog niekas nezino unsigned kintamuju?
Arduino.h faile yra
Kodas: |
unsigned long millis(void); |
ir to per akis uztenka teisingam f-jos panaudojimui. |
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 10 05, 13:48 |
|
|
|
Tu teisus, sitaip uzrasytas ciklas veiks korektiskai. |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 11 13, 21:18 |
|
|
|
sveiki, noriu pasidaryti viena dalyka, bet lygtai paprastoj vietoj problema iskilo. kaip padaryti, kad arduinas visada skaitytu mygtuku busena ? nes nuspaudus pirma button, kol veikia delay(2000); as spaudineju button2 ir arduinas nereaguoja kol nesibaigia uzlaikymo laikas. bandziau du void loop rasyt bet sako kad negalima...
const int buttonPin = 2; //
const int button2Pin = 4; //
const int ledPin1 = 6;
const int ledPin4 = 9;
int buttonState = 0; // variable for reading the pushbutton status
int button2State = 0; // variable for reading the pushbutton status
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(button2Pin, INPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
button2State = digitalRead(button2Pin);
if (buttonState == HIGH) {
digitalWrite(ledPin1, HIGH);
delay(2000);
}
else {
digitalWrite(ledPin1, LOW);
}
if (button2State == HIGH) {
digitalWrite(ledPin4, HIGH);
delay(2000);
}
else {
digitalWrite(ledPin4, LOW);
}
} |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 11 13, 22:12 |
|
|
|
Kodas: |
const int button1 = 2;
const int button2 = 4;
const int led1 = 6;
const int led2 = 9;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
}
void loop() {
static int timer1 = 0;
static int timer2 = 0;
static uint32_t oldMicros = 0;
// laukiame 1ms
while(1000UL > micros() - oldMicros);
oldMicros += 1000UL;
// jei nuspaustas mygtukas2 ijungiame LED1 ir nustatome skaitliuka 2000ms
if (digitalRead(button1)) {
digitalWrite(led1, HIGH);
timer1 = 2000;
}
// jei nuspaustas mygtukas2 ijungiame LED2 ir nustatome skaitliuka 2000ms
if (digitalRead(button2)) {
digitalWrite(led2, HIGH);
timer2 = 2000;
}
// kol skaitliukas ne 0, dekrementuojame, kitaip - isjungiame LED1
if (0 != timer1) {
if (0 == --timer1) {
digitalWrite(led1, LOW);
}
}
// kol skaitliukas ne 0, dekrementuojame, kitaip - isjungiame LED2
if (0 != timer2) {
if (0 == --timer2) {
digitalWrite(led2, LOW);
}
}
}
|
|
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 11 14, 00:23 |
|
|
|
laabai ačiū ! kur galima paskaityti iš kur jūs ištraukėt tuos < static int, static uint32_t oldMicros = 0; 0 != timer1 > nes čia tamsus miškas palyginti su tuom ka išmokė arduino example knyga |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 11 14, 00:56 |
|
|
|
minddog rašo: |
laabai ačiū ! kur galima paskaityti iš kur jūs ištraukėt tuos < static int, static uint32_t oldMicros = 0; 0 != timer1 > nes čia tamsus miškas palyginti su tuom ka išmokė arduino example knyga |
Cia ir gali paskaityti, pvz:
uint32_t tolygu unsigned long ir aprasoma taip:
Kodas: |
typedef uint32_t unsigned long |
static naudotinas dvejopai:
1) kai reikia apibrezti kintamaji, kuris matomas tik f-joje/proceduroje, bet veikia kaip aprasytas uz jos ribu, t.y. isejus is proceduros atmintis nera atlaisvinama ir reiksme neprarandama;
2) kai reikia apriboti kintamojo matomuma iseities teksto failo ribose ir tada neiseis jo perimti per extern modifikatoriu is kito failo.
kas liecia
Kodas: |
if (konstanta loginis_operatorius funkcija/kintamasis/konstanta) |
tai cia toks stilius, leidziantis siek tiek sumazinti kaikuriu klaidingai uzrasytu veiksmo ir loginiu operatoriu pasekmes, pvz yra didelis skirtumas tarp:
ir
arba
ir
ir t.t.
tai va, kai kaireje puseje konstanta, tai priskyrimo operatoriaus atveju bus pranesimas apie negalima operacija
jei reikia lyginti kintamojo ir f-jos rezultata, tai kaireje reikia rasyti f-ja...
pvz
Kodas: |
static unsigned long pauseMicros = 1000UL;
static unsigned long oldMicros = 0;
if (micros() - oldMicros > pauseMicros){
digitalWrite(LED1, !digitalRead(LED1));
oldMicros += (pauseMicros += 100UL);
}
|
|
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2016 11 25, 23:26 |
|
|
|
aciu uz pagalba, bet dar labiau nieko nesuprantu |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS 22 Tractors
Farming Simulator 19 Mods,
FS 22 Maps,
FS22 Mods |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS22 Trucks |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
Paskola internetu
Vartojimo paskola,
paskola automobiliui,
paskola būsto remontui |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS22 Mods
FS22 Harvesters,
FS22 Tractors Mods,
FS22 Maps Mods |
|
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat |
|
Optic sight
Binoculars for hunting elk,
Best compact binoculars,
Riflescope hunting |
|
|
|