|
|
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 05 14, 02:27. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Elektronika žaliems » Vandens slėgio daviklio klaidos
|
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
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 13, 18:06 |
|
|
|
Is aprašymo neaišku kurioje vietoje Arduino neteisingai registruoja krentantį slėgi. Ar aš čia vienintelis nieko nesuprantu?
Geriau aprašyti taip:
1. T=00. Įjungiame siurblį rankiniu būdu.
2. T+1s. Spaudimas pakyla iki 3,5 baro (parodymai stebimi analoginiame manometre/nestebimi bet prognozuojami).
3. T+5s. Perjungiame siurblio valdymo režimą iš rankinio į automatinį.
4. T+5s. Arduino bla bla bla
...
7. T+2h. Slegis nukrenta žemiau 2,8 baro.
8. T+2h+1s. Arduino užregistruota nukritusį slėgį ir išjungia siurblį.
Na kažkaip panašiai. |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 13, 19:57 |
|
|
|
Badas rašo: |
Is aprašymo neaišku kurioje vietoje Arduino neteisingai registruoja krentantį slėgi. |
arduinkė ten viską daro teisingai, tiesiog sklendės startavimo momentu ten būna toks įtampos kritimas, kad iš slėgio daviklio ateinančio signalo įtampa nukrenta tiek, tarsi slėgis būtų nukritęs žemiau nustatytos ribos
aš sakiau, AlgisL jam sako - reikia atskirti jėgos grandiniės (sklendės) ir valdymo schemos maitinimus, betgi čia ukininkas, tu jam kuolą ant galvos tašyk o jis vistiek savo tiesas dėstys |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 13, 21:07 |
|
|
|
gnt rašo: |
sklendės startavimo momentu ten būna toks įtampos kritimas, kad iš slėgio daviklio ateinančio signalo įtampa nukrenta |
Taigi galima programiškai nufiltruot laikiną kritimą, bet tam reikia žinoti signalo charakteristikas, kad atskirti tikrą duobę nuo netikros (darau prielaidą kad kritimas yra laikinas).
O ar negalima jutiklio prijungti tiesiai apie ADC? Daugiau bitų - daugiau informacijos apmąstymams. |
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 13, 23:32 |
|
|
|
Badas rašo: |
Taigi galima programiškai nufiltruot laikiną kritimą, bet tam reikia žinoti signalo charakteristikas, kad atskirti tikrą duobę nuo netikros (darau prielaidą kad kritimas yra laikinas).
. |
galima
bet tam reikia pilnai žinot: sistemos veikimo algoritmą
visus parametrus kiek kaip ir kuris keičiasi
ir mokėt programuot
man paprasčiau nuvest metrą kitą kabeliuko |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 14, 10:32 |
|
|
|
Pradžiai ačiū visiems už nuomones ir pastebėjimus.
Nesupykit, bet n kartų rašiau, kad realiai slėgis nekrenta, tiesiog įjungimo momentu atsiranda klaidingas signalas. Taip pat dar pirmame savo poste minėjau, gal variantas būtų atskiras maitinimas, Jūsų siūlote atskirą laiduką, bet esmė tapati. Galima jutiklį ir tiesiai pajungti prie arduino. Tačiau kiekvienas šitas variantas reikalauja daugiau ar mažiau PCB perdaymo.
Kai minėjau anksčiau sumažinus apatinę ribą iki 2 barų viskas veikia tvarkingai, vadinasi veikimo logika yra teisinga.
Labiausiai norėtusi, kažkaip programiniu būdu išspręsti šią problemą, gal kažkaip per x laiko tarpą jei iš 10 užklausų 7-8 tenkina sąlyga, vadinasi tikrai yra slėgio kritimas ir tada duoda komandą išjungti. Užklausos gali eiti kas 0,1-0,2s. |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 14, 10:56 |
|
|
|
Tai mes suprantam kad realus slėgis nekrenta, gal turėjau rašyt kabutėse kad nesupainiot žmonių. Toliau kabučių nerašysiu, bo aišku kad visiems viskas aišku
Bet kad programiškai nufiltruot netikrą kritimą, reikia žinoti jo parametrus: slėgio kritimo greitį (todėl ir noriu ADC), atsistatymo trukmę, ir pan. Tam reikia daryt eksperimentus, o tam reikia parašyt mažą testinę programėlę, kuri į ekranėlį (jei toks yra) arba į laptopą išveda reikiamus duomenis. Dar galima į LEDą išvesti, bet čia jau mazochizmas. Ar užsiimsi tuo? Gal tikrai paprasčiau laidą atvest? Tam juk nereikia perdaryt PCB?
Šiaip galima padaryti kad reikia 70% "kvorumo" variklio išjungimui, bet ar tai nėra spėliojimas? |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 14, 15:24 |
|
|
|
O jei sukurti funkcija, kuri būtų iškviečiama kas 5 s ir jos atsakymas būtų naudojamas pagrindiniame kode.
Funkcijos veikimo logika tokia: tikrina komparatoriaus išėjimą, jei du kartus išeilės yra loginiai nuliai, tai vadinasi 5 s intervale slėgis buvo tikrai kritęs ir funkcija gražina atsakymą loginį 0, visi kiti variantai kaip pvz 1 ir 1, 0 ir 1, 1 ir 0 būtų gražinami kaip loginis 1. 5 s intervalas su kritusiu slėgiu aplamai sistemai jokios neigiamos įtakos neturės. Svarbu, kad patikrinimai nestabdytu kitų procesų.
Tik kaip tai užrašyti kolkas jokių minčių neturiu. |
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 14, 17:49 |
|
|
|
Papostink dabartinį programos kodą, ir sugalvosim kur įdėti.
Dar patikslink, kiek gali vėluoti siurblio išjungtimas po to kai iš tiesų nukrito slėgis. Pagal paskutinę tavo žinutę suprantu kad 5+5s, ar teisingai? |
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 15, 09:21 |
|
|
|
nemoki programuoti kodel nebandoma pasinaudoti chatGPT paslaugomis, nesudetinga koda puikiai paraso, galima prasyti kad paaiskintu viena ar kita vieta kaip veikia. pateiki jam turima koda ir paprasai prideti tai ko reikia. |
|
_________________ Skype: dmb-220 |
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 15, 13:26 |
|
|
|
dmb-220 rašo: |
nemoki programuoti kodel nebandoma pasinaudoti chatGPT paslaugomis |
Gal todėl kad žmogus neturi kvalifikacijos įvertinti kodo teisingumą?
Tuos visus komentarus "padaro gerai" sako patyrę programuotojai, kurie gali greitai įvertinti kodo teisingumą, o jeigu greitai negali, tai visvien jaučiasi ramiai ir problemą ras vėliau, nes jie sėdi savo rogėse.
Visai kitaip jaučiasi nepatyręs žmogus. Va įsivaizduok eilinis lietuvis klausia GPT: kaip pajungti automatus el.skyde. Ar gavęs boto atsakymą jis jausis ramiai? Kas iš to kad botas gali atsakyti į klausimus ir paaiškinti. ChatGPT garsėja tuo, kad didžiausias nesamones gali pateikti labai įtikinamu ir autoritetingu tonu. Gal botas atsakė viską gerai, bet nei vienas normalus programuotojas neišleis į prodą ChatGPT kodo prieš tai kvalifikuotai jo nepatikrinęs. |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 15, 20:40 |
|
|
|
Kodas: |
#include <SoftwareSerial.h>
SoftwareSerial sim800l(9, 10); // RX,TX for Arduino and for the module it's TXD RXD, they should be inverted
String textMessage;
int slegis = 8;
int plude = 7;
int mygtukas = 6;
int jgp1 = 5;
int jpp1 = 4;
int griztamas = 14;
int pirmyn = 15;
int atgal = 16;
int slegis_of = 17;
int slegis_of1 = 18;
bool buton1 = 0;
bool buton2 = 0;
bool buton3 = 0;
bool buton4 = 0;
bool buton5 = 0;
bool buton6 = 0;
bool buton7 = 0;
bool buton8 = 0;
bool buton9 = 0;
void setup() {
sim800l.begin(9600);
delay(10000);
sim800l.print("AT+CMGF=1\r");
delay(100);
sim800l.print("AT+CNMI=2,2,0,0,0\r");
delay(100);
pinMode (mygtukas, INPUT);
pinMode (plude, INPUT);
pinMode (slegis, INPUT);
pinMode (jgp1, INPUT);
pinMode (jpp1, INPUT);
pinMode (griztamas, INPUT);
pinMode (pirmyn, OUTPUT);
pinMode (atgal, OUTPUT);
pinMode (slegis_of, OUTPUT);
pinMode (slegis_of1, OUTPUT);
}
void loop() {
if (sim800l.available() > 0) {
textMessage = sim800l.readString();
delay(10);
}
if (textMessage.indexOf("Of") >= 0) {
buton8 = 1;
isjungti();
}
buton1 = digitalRead(plude);
buton2 = digitalRead(mygtukas);
buton3 = digitalRead(griztamas);
buton4 = digitalRead(slegis);
buton5 = digitalRead(jgp1);
buton6 = digitalRead(jpp1);
if ((buton1 == HIGH) && (buton2 == HIGH) && (buton3 == LOW) && (buton5 == HIGH) && (buton6 == LOW) &&
(buton4 == HIGH) && (buton8 == 0)) //isijungiame automatika
{
digitalWrite (pirmyn, LOW);
digitalWrite (atgal, LOW);
}
if ((buton1 == LOW) && (buton2 == HIGH) && (buton3 == LOW) && (buton5 == HIGH) && (buton6 == LOW) &&
(buton4 == HIGH) && (buton8 == 0)) //ipilame trasas
{
digitalWrite (pirmyn, LOW);
digitalWrite (atgal, LOW);
}
if ((buton1 == LOW) && ((buton2 == LOW) || (buton3 == HIGH)) && (buton5 == HIGH) && (buton6 == LOW) &&
(buton4 == HIGH) && (buton8 == 0)) //startas ''mygtukas ON''
{
digitalWrite (pirmyn, HIGH);
digitalWrite (atgal, LOW);
}
if ((buton1 == LOW) && (buton2 == HIGH) && (buton5 == LOW) && (buton6 == HIGH) && (buton4 == HIGH) &&
(buton8 == 0))
//atsidare trasos
{
digitalWrite (pirmyn, LOW);
digitalWrite (atgal, LOW);
}
if ((buton1 == HIGH) && (buton2 == HIGH) && (buton5 == LOW) && (buton6 == HIGH) && (buton4 == HIGH)
&& (buton8 == 0))
//baigesi trasos
{
digitalWrite (pirmyn, LOW);
digitalWrite (atgal, HIGH);
}
if ((buton1 == HIGH) && (buton2 == HIGH) && (buton5 == HIGH) && (buton6 == LOW) && (buton4 == HIGH)
&& (buton8 == 0))
//uzsidare trasos
{
digitalWrite (pirmyn, LOW);
digitalWrite (atgal, LOW);
}
if (buton4 == LOW)
{
isjungti();
}
}
void isjungti()
{
if (buton6 == HIGH)
{
digitalWrite (atgal, HIGH);
digitalWrite (pirmyn, LOW);
}
if (buton6 == LOW)
{
digitalWrite (atgal, LOW);
digitalWrite (pirmyn, LOW);
digitalWrite (slegis_of, HIGH);
digitalWrite (slegis_of1, HIGH);
delay(2000);
if (buton7 == 0)
{
sendSMS() ;
buton7 = 1;
}
}
}
void sendSMS()
{
sim800l.print("AT+CMGF=1\r"); //Set the module to SMS mode
delay(100);
sim800l.print("AT+CMGS=\"+37011111111\"\r"); //Your phone number don't forget to include your country code, example +212123456789"
delay(500);
sim800l.print("Variklis OF"); //This is the text to send to the phone number, don't make it too long or you have to modify the SoftwareSerial buffer
delay(500);
sim800l.print((char)26);// (required according to the datasheet)
delay(500);
sim800l.println();
delay(500);
}
|
Kodas atrodo taip
Turint minty, kad visą tai yra tik žiemos laisvalaikio užsiėmimas, tai labai nekritikuokit.
Reikėtu įterpti kodo dalį, kuri atliktu slėgio patikrinimą kas 5 s ir esant išeilės dviems atsakymams su loginiu 0, aktyvuoti funkciją "išjungti".
5 s intervalas yra orentacinis, paskui bus galima paekspermentuoti. |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 15, 21:43 |
|
|
|
Pasitikslinimas: ar šitoj sąlygoj turi būti ||? Visur kitur kitur yra tik &&, tai gal čia klaida? Nesakau kad čia blogai, nesu įsigilinęs į biznio logiką, bet išskirtinumas krenta į akis.
Kodas: |
if ((buton1 == LOW) && ((buton2 == LOW) || (buton3 == HIGH)) && (buton5 == HIGH) && (buton6 == LOW) &&
(buton4 == HIGH) && (buton8 == 0)) //startas ''mygtukas ON''
{
digitalWrite (pirmyn, HIGH);
digitalWrite (atgal, LOW);
} |
|
|
|
|
|
|
Vandens slėgio daviklio klaidos |
Parašytas: 2023 06 15, 21:48 |
|
|
|
Beje, mygtukai ir kiti įėjimai čia neapsaugoti nuo komutacijos triukšmų, ar nebuvai susidūręs su tokia problema? |
|
|
|
|
|
|
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 |
|
|
|