Elektronika.lt
 2024 m. lapkričio 27 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 11 27, 21:25. 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
 
  
Puslapis 35
Pereiti prie Atgal  1, 2, 3, 4, 5  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 15, 20:58 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ukininkas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Badas rašo:
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);
  }


Ne klaidos čia nėra. Taip turi buti,buton 3 imituoja paspausta mygtuką, kol pavara pasiekia JGP1 (jungiklis galinės padėties)
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 15, 21:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Badas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Beje, originalus kodas sunkiai, skaitomas, tai paprašiau ChatGPT truputį supaprastinau:

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 pin_slegis     = 8;
int pin_plude      = 7;
int pin_mygtukas   = 6;
int pin_jgp1       = 5;
int pin_jpp1       = 4;
int pin_griztamas  = 14;
int pin_pirmyn     = 15;
int pin_atgal      = 16;
int pin_slegis_of  = 17;
int pin_slegis_of1 = 18;

bool val_plude = 0;
bool val_mygtukas = 0;
bool val_griztamas = 0;
bool val_slegis = 0;
bool val_jgp1 = 0;
bool val_jpp1 = 0;

bool isjungta = 0;

void setup() {
    pinMode(pin_mygtukas,   INPUT);
    pinMode(pin_plude,      INPUT);
    pinMode(pin_slegis,     INPUT);
    pinMode(pin_jgp1,       INPUT);
    pinMode(pin_jpp1,       INPUT);
    pinMode(pin_griztamas,  INPUT);
    pinMode(pin_pirmyn,     OUTPUT);
    pinMode(pin_atgal,      OUTPUT);
    pinMode(pin_slegis_of,  OUTPUT);
    pinMode(pin_slegis_of1, OUTPUT);

    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);
}

void loop() {
    if (sim800l.available() > 0) {
        textMessage = sim800l.readString();
        delay(10);
    }

    if (textMessage.indexOf("Of") >= 0) {
        isjungti();
    }

    if (isjungta)
        return;

    val_plude     = digitalRead(pin_plude);
    val_mygtukas  = digitalRead(pin_mygtukas);
    val_griztamas = digitalRead(pin_griztamas);
    val_slegis    = digitalRead(pin_slegis);
    val_jgp1      = digitalRead(pin_jgp1);
    val_jpp1      = digitalRead(pin_jpp1);

    if (val_plude && val_mygtukas && !val_griztamas && val_jgp1 && !val_jpp1 && val_slegis) //isijungiame automatika
    {
        digitalWrite(pin_pirmyn, LOW);
        digitalWrite(pin_atgal, LOW);
    }

    if (!val_plude && val_mygtukas && !val_griztamas && val_jgp1 && !val_jpp1 && val_slegis) //ipilame trasas
    {
        digitalWrite(pin_pirmyn, LOW);
        digitalWrite(pin_atgal, LOW);
    }

    if (!val_plude == && !val_mygtukas || val_griztamas && val_jgp1 && !val_jpp1 && val_slegis) //startas ''mygtukas ON''
    {
        digitalWrite(pin_pirmyn, HIGH);
        digitalWrite(pin_atgal, LOW);
    }

    if (!val_plude && val_mygtukas && !val_jgp1 && val_jpp1 && val_slegis) //atsidare trasos
    {
        digitalWrite(pin_pirmyn, LOW);
        digitalWrite(pin_atgal, LOW);
    }

    if (val_plude && val_mygtukas && !val_jgp1 && val_jpp1 && val_slegis) //baigesi trasos
    {
        digitalWrite(pin_pirmyn, LOW);
        digitalWrite(pin_atgal, HIGH);
    }

    if (val_plude && val_mygtukas && val_jgp1 && !val_jpp1 && val_slegis) //uzsidare trasos
    {
        digitalWrite(pin_pirmyn, LOW);
        digitalWrite(pin_atgal, LOW);
    }

    if (val_slegis == LOW) {
        isjungti();
    }
}

void isjungti() {
    if (isjungta)
        return;
    isjungta = true;
    if (val_jpp1) {
        digitalWrite(pin_atgal, HIGH);
        digitalWrite(pin_pirmyn, LOW);
    } else {
        digitalWrite(pin_atgal, LOW);
        digitalWrite(pin_pirmyn, LOW);
        digitalWrite(pin_slegis_of, HIGH);
        digitalWrite(pin_slegis_of1, HIGH);
        delay(2000);

        sendSMS();
    }
}

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);
}


Šito kodo netestavau, bet jeigu kas nors neveiks, tai bet kuris botas greitai patvarkys Very Happy
 mano variantas
PranešimasParašytas: 2023 06 15, 21:34 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
irgi netikrinau
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;

const int PIN_SLEGIS = 8;
const int PIN_PLUDE = 7;
const int PIN_MYGTUKAS = 6;
const int PIN_JGP1 = 5;
const int PIN_JPP1 = 4;
const int PIN_GRIZTAMAS = 14;
const int PIN_PIRMYN = 15;
const int PIN_ATGAL = 16;
const int slegis_of = 17;
const int slegis_of1  = 18;

bool plude = 0;
bool mygtukas = 0;
bool griztamas = 0;
bool slegis = 0;
bool jgp1 = 0;
bool jpp1 = 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 (PIN_MYGTUKAS, INPUT);
  pinMode (PIN_PLUDE, INPUT);
  pinMode (PIN_SLEGIS, INPUT);
  pinMode (PIN_JGP1, INPUT);
  pinMode (PIN_JPP1, INPUT);
  pinMode (PIN_GRIZTAMAS, INPUT);
  pinMode (PIN_PIRMYN, OUTPUT);
  pinMode (PIN_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();
  }

  plude     = digitalRead(PIN_PLUDE);
  mygtukas  = digitalRead(PIN_MYGTUKAS);
  griztamas = digitalRead(PIN_GRIZTAMAS);
  slegis    = digitalRead(PIN_SLEGIS);
  jgp1      = digitalRead(PIN_JGP1);
  jpp1      = digitalRead(PIN_JPP1);

  if (plude && mygtukas && !griztamas && jgp1 && !jpp1 && slegis && !buton8)
  //isijungiame automatika
  {
    digitalWrite (PIN_PIRMYN, LOW);
    digitalWrite (PIN_ATGAL, LOW);
  }

  if (!plude && mygtukas && !griztamas && jgp1 && !jpp1 && slegis && !buton8)
  //ipilame trasas
  {
    digitalWrite (PIN_PIRMYN, LOW);
    digitalWrite (PIN_ATGAL, LOW);
  }

  if (!plude && (!mygtukas || griztamas) && jgp1 && !jpp1 && slegis && !buton8)
  //startas ''MYGTUKAS ON''
  {
    digitalWrite (PIN_PIRMYN, HIGH);
    digitalWrite (PIN_ATGAL, LOW);
  }

  if (!plude && mygtukas && !jgp1 && jpp1 && slegis && !buton8)
  //atsidare trasos
  {
    digitalWrite (PIN_PIRMYN, LOW);
    digitalWrite (PIN_ATGAL, LOW);
  }

  if (plude && mygtukas && !jgp1 && jpp1 && slegis && !buton8)
  //baigesi trasos
  {
    digitalWrite (PIN_PIRMYN, LOW);
    digitalWrite (PIN_ATGAL, HIGH);
  }

  if (plude && mygtukas && jgp1 && !jpp1 && slegis && !buton8)
  //uzsidare trasos
  {
    digitalWrite (PIN_PIRMYN, LOW);
    digitalWrite (PIN_ATGAL, LOW);
  }

  if (slegis == LOW)
  {
    isjungti();
  }
}

void isjungti()
{
  if (jpp1)
  {
    digitalWrite (PIN_ATGAL, HIGH);
    digitalWrite (PIN_PIRMYN, LOW);
  }

  if (!jpp1)
  {
    digitalWrite (PIN_ATGAL, LOW);
    digitalWrite (PIN_PIRMYN, LOW);
    digitalWrite (slegis_of, HIGH);
    digitalWrite (slegis_of1, HIGH);
    delay(2000);
 
    if (!buton7)
    {
      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);
}
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 15, 21:39 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Badas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kuris gražesnį kodą parašys? Kaip suprantu, dabar mano ėjimas Mr. Green Mr. Green
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 15, 21:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Pakolkas parase galimai ukininkas, o mes tik koreguojame i geresne puse _gal_
Manau, kad papildyti komentarais nepamaisytu.
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 16, 08:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ukininkas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Badas rašo:
Beje, mygtukai ir kiti įėjimai čia neapsaugoti nuo komutacijos triukšmų, ar nebuvai susidūręs su tokia problema?

Visi įėjimai per 10k varža yra "patempti" į pliusą
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 16, 08:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ukininkas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sutinku, kad Jūsų pateikti kodai tikrai yra užrašyti aiškiau ir tvarkingiau, bet jie nesprendžia klaidingo suveikimo problemos.
Aš vis vien esu linkęs pasilikti prie savo nuomonės, kad "slėgis" apklausinėti kas penkias sekundes, esamą rezultatą lyginti su prieš tai buvusiu, formuoti naują kintamajį ir tą kintamąjį naudoti likusiame kode
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 16, 10:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Mes ir nesprendeme verslo logikos klaidu, o tik taiseme iskaitomuma to ka prirasei pats.
Griztant prie slegio nustatymo - koks algoritmas turi buti?
Beje,paviesink arduino modeli, nes ju yra ivairi ir neviskai aisku kokiam cia parasyta.
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 16, 11:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Badas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
ukininkas rašo:
Sutinku, kad Jūsų pateikti kodai tikrai yra užrašyti aiškiau ir tvarkingiau, bet jie nesprendžia klaidingo suveikimo problemos.

Tai mes dar nepradėjom spręsti Smile. Va ateis savaitgalis, išgersim alaus... Very Happy
Kodo aiškumas visu pirma reikalingas mums patiems, nes brūzgynuose apskritai neaišku kur ir kas.

Beje, su kokiu softu programuoji, Arduino IDE?
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 16, 14:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ukininkas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kaip manote, gal toks intarpas suveiktu
Kodas:
myTime = millis();
  if (myTime = 5000){               //atliekame patikrinima kas 5 s
    buton4 = digitalRead(slegis); //signalas iš komparatoriaus 0 arba 1
    new_data = buton4;
    if((new_data == 0) && (old_data == 0)){    //lyginame nauja reikšme su senaja, startinė pozicija loginis 1
      daviklis = LOW;
    }
    else daviklis = HIGH;
    old_data = new_data;
    myTime = 0;
  }
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 16, 15:11 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Badas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Nesuveiktų.

Na sugalvosim tau sprendimą, nebent pats nekantrauji Smile
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 16, 16:24 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Pateik daugiau detalių: kokia pavara (modelis ir nustatymai), daviklio modelis ir pajungimo schema (gali pieštą iš rankos), koks arduino valdiklis ir aprišimas.
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 17, 11:26 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ukininkas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
AlgisL rašo:
Pateik daugiau detalių: kokia pavara (modelis ir nustatymai), daviklio modelis ir pajungimo schema (gali pieštą iš rankos), koks arduino valdiklis ir aprišimas.

Suprantu, kad Jūs esate savo srities profai ir už tai pagarba Jums, bet pas mane, kaip ir minėjau yra tik žiemos laisvalaikio užsiėmimas, kad smegenis pamankštinti.
Pavara padaryta yra iš automobilio langų valytuvo varikliuko ir ilgasriegio varžto Very Happy , pradinės padėties ir galinės padėties jungikliai lygtai iš mikrobangės. Arduino Nano3, slėgio daviklis "Gravity, analoginis vandens slėgio jutiklis, DFRobot SEN0257".
Idedu kodo fragmentą
Kodas:

 currentTime = millis();
  if (currentTime - previousTime >= 5000){               //atliekame patikrinima kas 5 s
    buton4 = digitalRead(slegis); //signalas iš komparatoriaus 0 arba 1
    new_data = buton4;
    if((new_data == 0) && (old_data == 0)){    //lyginame nauja reikšme su senaja, startinė pozicija loginis 1
      daviklis = LOW;
    }
    else daviklis = HIGH;
    old_data = new_data;
    previousTime = currentTime;
  }

Labiausiai mane domina, ar teisinga logika, ar tikrins "slegis" daviklį tik kas 5 sekundes ir lygins su anksčiau buvusia reikšme. Ir gavus du loginius 0 formuos kintamaji "daviklis" su reikšme LOW.
Visais kitais atvejais kintamasis "daviklis" turėtu būti HIGH
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 17, 12:51 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Badas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Šitas turėtų veikti.
 Vandens slėgio daviklio klaidos
PranešimasParašytas: 2023 06 17, 15:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Visu pirma - komparatoriaus darba valdo:
AIN0 (PD6) - D6 pin "+"
AIN1 (PD7) - D7 pin "-"
todel teks pataisyti elektrine schema...

Kodas:

boolean ACO_status = 0; // comparatoriaus busena

void setup() {
  bitClear(ACSR, ACD);  // ijungiame komparatoriu
  bitClear(ADCSRB, ACME); // isjungiame analogini multipleksoriu
  DIDR1 |= (bit(AIN1D) | bit(AIN0D)); // atjungiame skaitmenines grandines nuo komparatoriaus




  ACO_status = bitRead(ACSR, ACO) != 0; // comparatoriaus statusas
}


void loop() {



  ACO_status = bitRead(ACSR, ACO) != 0; // comparatoriaus statusas

}


Isnaudoti AIN1 galima per analogini multipleksoriu, bet tik analoginiams iejimams.


Atsiprasau, seniai bekodinau ir pamirsau nuverciant bita panaudoti inversija....
Pakoregavau pagal arduino ideologija, bus gal kiek aiskiau.


Paskutinį kartą redagavo AlgisL, 2023 06 19, 14:39. Redaguota 3 kartus(ų)
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie Atgal  1, 2, 3, 4, 5  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

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
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
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
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