 |

|
|
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 2025 12 16, 13:53. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Reikalinga pagalba
|
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
|
|
|
 |
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 06:19 |
|
|
|
|
| S_Kulikauskas rašo: |
Aš tai manau, kad seka bus tokia:
Kai pirmas Holas "HIGH" ciklas sustoja 1s ir dzin kas tuo metu vyksta ant tų "inputų" , nes tuo metu jis jų nestebi. O toliau sunku prognozuti .
Nors ne, gal ir gera mintis, bus nuskaityti abu kartu, taip šią minį gal ir galima išvystyti.
Visgi, bloga mintis, realiai gryžome į pradžią tik sudėtingesnį kodą padarėme . |
if (holo1State == HIGH) { // jei holas duoda signala, tada vykdoma komanda
delay(1000);
if (holo2State == HIGH) {
digitalWrite(salenoidasPin, HIGH);
delay(500); //palaukiam puse sekundės
digitalWrite(salenoidasPin, LOW); //salenoidas išsijungia
mano supratimu gaves signala is pirmo holo valdiklis laukia sekunde, tada stebi antra hola, jei is ten gauna signala, tada ijungia salenoida, palaukia puse sekundes ir isjungia. O jei ratas sustojo tai antro signalo negaus ir salyga nebus vykdoma ir salenoida neatidarines. |
|
|
|
|
|
 |
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 08:13 |
|
|
|
|
Taip mąstai teisingai, veiks tavo variantas, bet kai abu HOLAI liks HIGHT, bus tas pats kaip ir su vienu, tai yra taimeriukas suksis be sustojimo.
Juokingiausia tai, kad visiškai kitu keliu, bet ir aš gavau tą patį .
štai tavo varijantas:
https://123d.circuits.io/circuits/1925079-ukininko_taimeris
Aš šiaip taip subūriau tą variantą su dviem laikais, bet mintis ta pati. Tik tavo atveju sustojus ant HIGH atsidarinėja kas 1,5s mano atveju kas 5,5s .
Žodžiu bloga mintis su dviem taimeriais, dabar jau pradėjau galvoti kitaip , pradėjau jieškoti, kaip galima išmatuoti ilgą ir trumpą mygtuko paspaudimą, kas atitiktų trumpa HOLO suveikimą, arba labai ilgą.
Maždauk krypstu šita linkme:
http://jmsarduino.blogspot.lt/2009/05/click-for-press-and-hold-for-b.html
http://forum.arduino.cc/index.php?topic=41466.0
Tik nelabai dabar turiu laiko, gal vakare prisėsiu.
P.S. O tau veikia nuorodos iš šio puslapio https://123d.circuits.io ? |
|
|
|
|
|
 |
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 08:22 |
|
|
|
|
laiko konstantas pasimazink/pasididink pagal poreikius
| Kodas: |
#define HOLO_ON HIGH // holas sudirbes
#define HOLO_DEBOUNCE_TIME 50 // kiek laiko turi buti nusistoveje holo busena
#define MIN_HOLO1_HOLO2_DELAY (1000-200) // kas kiek laiko minimum turi suveikti holo1 paskui holo2
#define MAX_HOLO1_HOLO2_DELAY (3000+600) // kiek max laiko turi praeiti tarp holo1 ir holo2 suveikimu
#define SOLENOID_ON_TIME 500 // kiek laiko turi buti suveikes solenoidas
const int holo1Pin = 2;
const int holo2Pin = 3;
const int solenoidPin = 10;
word solenoidTimer = 0;
word oldHolo1State, holo1DebounceCounter = 0, holo1State = 0;
word oldHolo2State, holo2DebounceCounter = 0, holo2State = 0;
unsigned long currentMillis, lastHolo1Time = 0, lastHolo2Time = 0;
void setup() {
pinMode(holo1Pin, INPUT_PULLUP);
pinMode(holo2Pin, INPUT_PULLUP);
pinMode(solenoidPin, OUTPUT);
delay(10);
oldHolo1State = digitalRead(holo1Pin);
oldHolo2State = digitalRead(holo2Pin);
currentMillis = millis();
}
void loop() {
word newHolo1State = digitalRead(holo1Pin);
word newHolo2State = digitalRead(holo2Pin);
// apdorojamas holo1
if (newHolo1State != oldHolo1State) {
oldHolo1State = newHolo1State;
if (HOLO_ON != newHolo1State) holo1State = 0;
holo1DebounceCounter = 0;
} else {
if (HOLO_DEBOUNCE_TIME >= holo1DebounceCounter) holo1DebounceCounter++;
if (HOLO_DEBOUNCE_TIME == holo1DebounceCounter) {
if (HOLO_ON == newHolo1State) {
lastHolo1Time = currentMillis;
holo1State = 1;
}
}
}
// apdorojamas holo2
if (newHolo2State != oldHolo2State) {
oldHolo2State = newHolo2State;
if (HOLO_ON != newHolo2State) holo2State = 0;
holo2DebounceCounter = 0;
} else {
if (HOLO_DEBOUNCE_TIME >= holo2DebounceCounter) holo2DebounceCounter++;
if (HOLO_DEBOUNCE_TIME == holo2DebounceCounter) {
if (HOLO_ON == newHolo2State) {
lastHolo2Time = currentMillis;
holo2State = 1;
}
}
}
// tikriname sukimosi greiti
if (1 == holo2State) {
long period = (long)(lastHolo2Time - lastHolo1Time);
// davikliai turi sudirbineti ne dazniau kaip per 1sek. ir ne reciau kaip per 3sek.
if (period >= MIN_HOLO1_HOLO2_DELAY && period < MAX_HOLO1_HOLO2_DELAY) {
digitalWrite(solenoidPin, HIGH);
solenoidTimer = SOLENOID_ON_TIME;
}
holo1State = holo2State = 0;
}
// solenoido apdorojimas
if (0 >= solenoidTimer) digitalWrite(solenoidPin, LOW);
if (0 != solenoidTimer) solenoidTimer--;
// ims pauze
while(millis() == currentMillis);
currentMillis++;
}
|
|
|
|
|
|
|
 |
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 09:42 |
|
|
|
|
Paprasčiausias variantas nekartoti ciklo, kol suveikęs holo daviklis:
| Kodas: |
int holoPin = 2;
int salenoidasPin = 10;
int holoState = 0;
int solenoidasVeike = 0;
void setup() {
pinMode(holoPin, INPUT);
pinMode(salenoidasPin, OUTPUT);
}
void loop() {
holoState = digitalRead(holoPin); //nuskaitoma jutiklio busena
if (holoState == HIGH) { // jei holas duoda signala,
if (!solenoidasVeike) { // jei solenoidas nebuvo veikes, tada vykdoma komanda
digitalWrite(salenoidasPin, HIGH);
delay(500); //palaukiam puse sekundės
digitalWrite(salenoidasPin, LOW); //salenoidas išsijungia
delay(2000); //palaukiam 2 sekundes
solenoidasVeike = 1; // solenoidasVeike prilyginam vienetui, kad nekartotų komandos, kol holas suveikes
}
} else { // jei holas neduoda signalo
solenoidasVeike = 0; // solenoidasVeike vel prilyginamas 0
}
} |
|
|
|
|
|
|
 |
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 10:15 |
|
|
|
|
Hencia tu Genijus , manau Ukininkas pirmą braškių derlių tau atveš . |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 10:26 |
|
|
|
|
| Galimai viskas veiktu ok, tik reikia isbandyti kaip ten butu triuksmo signale atveju. |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 10:36 |
|
|
|
|
Išbandyta. Viskas veikia. Ir taip paprastai padaryta, puikiai paaiškinta, net aš suprantu, kaip veikia tas kodas.
Kaip sakoma "genialu tas kas paprasta" . |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 10:55 |
|
|
|
|
Sakykim, jei atsiranda triuksmelis is holo, tai hencia atveju prades pastoviai sudirbineti kas 2,5sek
Mano algoritme netriuksminga zona turi buti bent 50ms ir turi buti tam tikri veleno apsisukimai.
Abu algoritmai nera idealus triuksmo atveju, tik mano atveju nebus tersiama gamta. |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 11:47 |
|
|
|
|
Iš kur jis ten atsiras , įėjimą per 1komo varžą paduodi į korpusą(kiek žinau kontrolerio įėjimo varža megaomais skaičiuojama), tai kai tik signalas dinks ten bus apsoliutus 0, o tai juk skaitmeninis "INas" iki 2V išvis jokios reakcijos.
Jei kalbi apie atsitiktinį signalo pasikartojimą tai irgi nematau kaip tai galėtų įvykti, juk po nuskaitymo 2,5s kontroleris bus "DILĖjuje".
Nebent su elektrošoku jį kas purtyti pradėtų .
Nereikia būti tokiais paranojikais, nes taip galima išvis į pievas nuvažiuoti. |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 11:51 |
|
|
|
|
| Nori suzinoti kas bus - paduok kazkiek Hz signala iejime ir isitikinsi, kaid isejimas klapses kas 2,5 sek, nors neturetu reaguoti isvis i toki signala. |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 12:11 |
|
|
|
|
Aišku suveikinės, bet man regis klausimas apie papildomo signalo eliminavimą nebuvo iškeltas. Taip, galima veltis gilyn ir gilyn: kas bus, kaip tas pats šalutinis signalas paklius į abu daviklius, kas bus jei inpulsai bus ne teigiami, o neigiami ir t.t.
Šitoje vietoje, viską lemia tik temos autoriaus pasirinkimas. Įvertins, kokia tikymybė, kad jo sodinamojoje, bus papildomas signalas ir pasirinks ar sudėtingesnę ir brangesnę, ar paprastesnę ir pigesnę.
P.S. Beje papildomą normalų signalą tai triukšmu nevadinčiaus .
Algi nepagalvok, kad tavo darbo nevertinu, tiesiog man per sudėtinga jį suprasti, manau tas pats bus ir su Ukininku. Bet išsisaugojau ir tavo kodą, nes kitomis aplinkybėmis gali netgi labai praversti. |
|
|
|
|
|
 |
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 20:56 |
|
|
|
|
Na kolektyvas Jūs ir prirašėt, net nesitikėjau.
Kai važiuosit vasara į Palangą pailsėti, užsukit pavaišinsiu braškėmis.
AlgisL, kodas man persudėtingas, aš dar tiek nepažengęs.
hensia, koda beveik ir perprantu, bet beveik... Ar šiuo atveju bereikalinga delay(2000)?
S_Kulikauskas, visdėlto norėčiau paprieštarauti dėl savo kodo varianto, holo davikliai stovi prie vieno rato bet ne vienoje linijoje, todėl signala pradžiai gauna pirmas holas, o tik paskui antras. Vadinasi fiziškai neįmanoma kad sustojus ratui abu holai gautų signalą.
P.S. O tau veikia nuorodos iš šio puslapio https://123d.circuits.io ?
taip veikia. |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 21:02 |
|
|
|
|
| Tada aš nesupratau tavo sumanymo. O pats ant simuliatoriaus nebandei patikrinti kas gaunasi? |
|
|
|
|
|
 |
Reikalinga pagalba |
Parašytas: 2016 04 11, 21:33 |
|
|
|
|
| Citata: |
| apie tokio tipo holo daviklį |
kuo negerai paprastas eilinis mažiukas herkonas? |
|
|
|
|
|
|
 |
Google paieška forume |
|
|
 |
Naujos temos forume |
|
 |
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 |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Must have farming mods
Farming simulator modhub,
Best farming simulator mods |
|

|
 |