Elektronika.lt
 2024 m. balandžio 24 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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 24, 09:56. Visos datos yra GMT + 2 valandos.
 Forumas » Programavimas » Arduino pwm value to screen?
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
 
  
Puslapis 24
Pereiti prie Atgal  1, 2, 3, 4  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 19, 16:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
darius_p rašo:
Citata:
Jei iš čia parašytau: Serial.print(GetLightlntensitylnt());


Serial.print( Channels[channel].GetLightIntensityInt(now) );


Na dabar sita suzinojo, bet kazin ar supras kodel reikia rasyti butent taip... O po to bus vel daug klausimu Smile
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 19, 19:52 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
darius_p rašo:
Citata:
Channels[channelNo].AddPoint(8, 0, 0);
Channels[channelNo].AddPoint(8, 30, 150);


Tai 3 parametras ir yra tavo PWM reikšmė. Jis fiksuotas 0 ir 150. Tai po kiekviena tokia eilute gali ir išvesti alia print("0"). Atitinkamai ir kitose vietose, kur keičiamas PWM.

Jeigu nori matyti rėžius ne 0-255, tai gali panaudoti tą "pct = map(X,0,255,0,100); " Vietoje X įrašai PWM reikšmę ir perskaičiuos proporcingai į 0-100%. Tada print(pct);


Šitą aš ir pats žinau, kad tas 3 parametras pwm reikšmė. Ją aš pats ir užsiduodu, kokia ji turi būti.

Ši situacija kaip DejaVu Laughing . Vakar skaitinėjau arduino forumą http://forum.arduino.cc/index.php?topic=298587.0 ir ten prieš metus lygiai tookius pats naujoks bando arduinų guru užklausti, kaip jam lcd matyti intensity realiu laiku šito pačio sketch-o. Shocked Man viskas aišku ko tam žmogeliui reikia, bet programeriam visa tai kažkaip kitaip atrodo. Aš programerius irgi suprantu, kad norint konkrečiai atsakyti reikia nagrinėti kažkieno sketchą, įsigilinti ir niekas neturi nei noro nei laiko gaišti savo laisvalaikį kažkieno pramogai. Gaila.
Kažkaip netyčia pamaniau, kad programuojantiems tai bus kaip du pirštus... (sry).

O dėl šito
Kodas:
Serial.print( Channels[channel].GetLightIntensityInt(now) );

aišku kad bus klausimų Shocked Nes vien tik ši eilutė nieko neduos. Nes kažkur kažkaip dar reikės aprašyti tą "channel". Confused
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 19, 21:24 Pranešti apie taisyklių pažeidimą Atsakyti su citata
darius_p
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Citata:
Nes vien tik ši eilutė nieko neduos. Nes kažkur kažkaip dar reikės aprašyti tą "channel".

Taigi jis aprašytas, jeigu yra jau tame kode. Po ta eilute kur jis naudojamas pridėk tą išvedimą.

Citata:
Kažkaip netyčia pamaniau, kad programuojantiems tai bus kaip

Gal ir būtų. Bet kai padriki kodo gabalai įkelti, tai neaišku kas kur aprašyta. Kita vertus, nagrinėti visą projektą ir padaryti funkcionalumą niekas nesuinteresuotas. Paprastai atsakinėjama į konkrečius klausimus. Ir temą reikėjo kurti prie mikrovaldiklių, ten daugiau stebi valdiklių programuotojai nei PC skyriuje.
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 19, 22:24 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Velnias, tik dabar ir aš pamačiau, kad yra mikrovaldiklių skiltis Embarassed

Na štai - ledai pajudėjo. Dabar jau ekrane matau esamą pwm reikšmę. Kol kas tik (nežinau kaip pavadinti tas reikšmes 0-255) šitais vienetais. Dabar žiūrinėsiu ar bėgant kaikui ji kis ir ekrane. Ir bandysiu perdaryti, kad tą reikšmę perskaičiuotų į %.

Kol kas DĖKUI už sugaištą laiką Wink varau testuoti...
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 19, 23:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kol kas pwm reikšmės (0-255) kitimą realiu laiku rodo. Gaila tik per valandą laiko pwm valdynas jau buvo ir "užstrigęs" ir kažkas su ciklu nuklydę - vietoj to, kad būtų 0 nušoko į prieš tai užduotą vertę (125-1). Perkrovus arduiną viskas stojasi į savo vietas - pasigauna laiką ir ciklą vykdo kaip turi būti.
Su šiuo valdikliuku planavau akvariumo apšvietimą valdyti, o tokie bugai nieko gero nežada Sad
Gal tai dėl to, kad tas kelias eilutes ne ten įrašiau ir jos kažkaip tai trikdo ciklą?

Kol kas dabar suku galvą kaip pwm 0-255 pervesti į 0-100%.
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 07:13 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Saulix rašo:
Kol kas dabar suku galvą kaip pwm 0-255 pervesti į 0-100%.


Na logiskai, tai tavo vieno PWM bito reiksme lygi 1/255, tai padaugink sita skaiciu is einamo laiko bitu skaiciaus ir tada padaugink is 100 Smile

Pvz.:
PWM registro reiksme = 128, tai gaunam: 128/255 * 100 = 50%.

Tiesa, cia studento darbas koksnors?
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 09:35 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Matematiškai tai aš tai suprantu ir pasiskaičiuoti moku, bet kaip ir rašiau programavime tik savaitę su arduinu žaidžiu.
Kiek prisiskaitinėjau tai arduinas tokiems perskaičiavimams map funkciją turi, aš tik nežinau kaip man ją teisingai užrašyti.
Čia ta kodo vieta kur pwm vertę išvedu į lcd:
Kodas:

// ----------------------- Functions -----------------------
long lastUpdateTime = 0;

// Update light intensity values
void UpdateLights(DateTime currentTime)
{
   long now = Seconds(currentTime.hour(), currentTime.minute(), currentTime.second());   // Convert current time to seconds since midnight
   if(now != lastUpdateTime)     // Perform update only if there is a perceivable change in time (no point wasting clock cycles otherwise)
   {
      for(int channel = 0; channel < MaxChannels; channel++)          // For each Channel
      {
         analogWrite(Channels[channel].GetPin(), Channels[channel].GetLightIntensityInt(now));   // Get updated light intensity and write value to pin (update is performed when reading value)
         Serial.print( Channels[channel].GetLightIntensityInt(now) );
      //   int pct = map(X,0,255,0,100); //Calculate PWM percentage
         lcd.setCursor(0,3);           // set cursor to column 0, row 4
         lcd.print("LED pwm ");     //
         if (Channels[channel].GetLightIntensityInt(now) < 10) lcd.print("0");   // kad butu 01, 02 ir t.t. nežinau ar reikia?
         lcd.print(Channels[channel].GetLightIntensityInt(now));               
         lcd.print("%");
      }
   }
   lastUpdateTime = now;
}


int pct = map(X,0,255,0,100)

vietoj X įrašyti: Channels[channel].GetLightIntensityInt(now) ?
o ką daryti su kaire lygybės puse?


Ne, čia ne studento darbas. Būtų gėda su tiek žinių šia tema rašyti darbą Embarassed

Šiaip esu akvariumistas turintis nano akvariumą su diy led apšvietimu. Kadangi jau šviečia ledai, tai kitas logiškas žingsnis būtų padryt ir atitinkamą jo valdymą - pwm signalu su saulėlydžiais/saulėtekiais ir t.t.
Kaip ten bebūtų šiuo metu jau turiu arduino uno, rtc ds3231, dht22, lcd 20x4, temp DS18B20 ir meanwell ldd-700h, maitblokis kol kas nuo seno PC. Taigi trūksta tik viską sujungti ir tvarkingai veikiančio, nestringančio sketch-o Smile
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 12:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
darius_p
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Citata:
vietoj X įrašyti: Channels[channel].GetLightIntensityInt(now) ?
o ką daryti su kaire lygybės puse?

Taip.
O kairė pusė bus tau reikalingas rezultatas (0-100). Tada print(pct).
P.S. jau šis atsakymas buvo žinutėje "2016 01 19, 12:33".
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 21:54 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Pagaliau viskas pavyko Very Happy
DIDELIS DĖKUI VISIEMS PADĖJUSIEMS ir užvedusiems ant tinkamo kelio. Visgi didžiausia mano nesėkmių priežastis buvo ta, kad visus savo bandymus aš rašydavau ne toj kodo eilutėj Sad
Galutinis veikiantis variantas gavosi toks:
Kodas:

int pct = Channels[channel].GetLightIntensityInt(now);
pct = map (Channels[channel].GetLightIntensityInt(now),0,255,0,100);
lcd.setCursor(0,3);           // set cursor to column 0, row 4
lcd.print("Light value  ");     // Light intensity
lcd.print(pct);
lcd.print("%");


Belieka tik programėlės testavimas - neramina vakarykščiai strigimai ir pwm vertės šokinėjimai.

Ir tiesa dar toks bugas: pasibaigus ciklui intensity sumažėjus nuo 100 iki 0 - ekrane lieka užrašas "0%%%". Ką nuveikus, kad visada būtų tik vienas % simbolis? Rolling Eyes
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 22:32 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Pries rasant nauja reiksme kaskart istrinti eilute.

Pas tave dabar gaunasi taip, kad atnaujinamas tik tos vietos simbolis, kur tu irasai, taigi kai buna 1%, tai procento simbolis yra 2 pozicijoj, 10% yra 3 pozicijoj, o 100% yra 4toj. Kai vel nusoka ant 0%, tai tu atnaujini tik 1 ir 2 pozicijas, matyt todel pozicijoje 3 ir 4 lieka seni procento simboliai nuo praeito atnaujinimo.

Kitas variantas: visada palik vietos trims skaiciams, bet kai bus maziau nei 100%, tai turesi tarpa iki procento zenklo.
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 22:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Socrates rašo:
Pries rasant nauja reiksme kas kart istrinti eilute.

Ar arduine yra tokia funkcija (komanda)? Pasiieškosiu, tik kaip tai angliškai vadinasi? Refresh? Embarassed
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 23:26 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Saulix rašo:
Socrates rašo:
Pries rasant nauja reiksme kas kart istrinti eilute.

Ar arduine yra tokia funkcija (komanda)? Pasiieškosiu, tik kaip tai angliškai vadinasi? Refresh? Embarassed


Pasinagrinek biblioteka:
https://www.arduino.cc/en/Reference/LiquidCrystal

Yra ten viena tokia komanda displejaus valymui Smile
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 20, 23:48 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
lcd.clear();
žinau, bet perilgai užtrunka ir valo visą ekraną...

Paprasčiausias būdas prieš lcd.print būtų įvesti:
Kodas:
if (pct < 10) lcd.print("  ");    // 2 space             
else if (pct < 100) lcd.print(" ") // 1 space ;


dar arduine yra kažkoks:
dtostrf(floatvar, StringLengthIncDecimalPoint, numVarsAfterDecimal, charbuf);

where
floatvar float variable
StringLengthIncDecimalPoint This is the length of the string that will be created
numVarsAfterDecimal The number of digits after the deimal point to print
charbuf the array to store the results

Bet čia daugiau gal skaičiams po kablelio ??? reik studijuoti.

DIDŽIAUSIA PROBLEMA - STRINGANTIS KODAS.
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 21, 11:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
darius_p
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Citata:
int pct = Channels[channel].GetLightIntensityInt(now);
pct = map (Channels[channel].GetLightIntensityInt(now),0,255,0,100);

Tai pirma eilutė nebereikalinga, trink. Tik tada "int" padėk prieš antrą.
Dėl strigimų tai gali būti sunku sugaudyti bugus su tokiais įgūdžiais. Didesnė strigimų tikimybė ant kokių daviklių nuskaitymo...
 Arduino pwm value to screen?
PranešimasParašytas: 2016 01 21, 19:51 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulix
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Dėkui.
Ir tikrai išmetus tą eilutę viskas veikia.
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie Atgal  1, 2, 3, 4  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

GENERAL FINANCING BANKAS

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

„Deinavos baldai“ — šeimos baldai

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
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
Farming Simulator 2019 Mods, FS22 Mods, FS22 Maps
farmingsimulator19mods.fr
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama