Elektronika.lt
 2024 m. gruodžio 28 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 12 28, 07:33. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Arduino spyna
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 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Arduino spyna
PranešimasParašytas: 2014 03 10, 19:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki, darau su arduino programėlę. Yra prijungtas LCD, keypad ir servo.
Esmė ta, kad įvedus kodą teisingą servas pasisuktu (spyna atsidarytų), suklydus - parašytų tekstą ir po 3 sekundžių vėl pradėtų programą iš naujo, suklydus 3 kartus užsiblokuotu ir nebereaguotu (paspaudus reset mygtuką atsistatytų). Problema ta, kad negaliu pradėti iš naujo loop ciklo. Tarkim įvedus teisingai, rašo "ACCESD GRANTED", bet nepasileidžia loop ciklas iš naujo... Gal kas pagelbėsit. Ačiū.
Kodas:
#include <Keypad.h>
#include <LiquidCrystal.h>
#include <Servo.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int i = 0, k  = 0;
Servo servo;
char sk[4];
char ps[4] = {'0', '0', '0', '0'};

const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {4, 5, 6, 7};
byte colPins[COLS] = {A5, A4, A3, A2};

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);


void setup() {
 
  servo.attach(3);
  servo.write(0);
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ENTER PASSWORD");
  lcd.setCursor(6, 1);

 
}

void correct(){
 
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ACCESS GRANTED");
  servo.write(255);
  delay(1000);
  servo.write(0);
  loop();
 
}

void incorrect(){
 
  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("ACCESS DENIED");
  delay(3000);
  loop();
 
}

void incorrect3(){
 
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ACCESS BLOCKED");
  delay(1000);
 
}

void loop() {

 if(i < 4){
  sk[i] = keypad.getKey();
    if (sk[i] != NO_KEY){
      lcd.print('*');
      i++;
     }
}

if(sk[0] == ps[0] && sk[1] == ps[1] && sk[2] == ps[2] && sk[3] == ps[3]){
 
  correct();
 
  }
 
if(i == 4 && sk[0] != ps[0]){
 
  incorrect();
  k++;
 
  }
if(k == 3){
 
  incorrect3();
 
  }
 
}

 Arduino spyna
PranešimasParašytas: 2014 03 11, 21:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Padėkit, niekaip nesugalvoju kaip pradėti tą programą iš naujo... Daryčiau su reset koja, bet tada neitų skaičiuoti kada tris kartus blogai įvedė kodą...
 Arduino spyna
PranešimasParašytas: 2014 03 11, 22:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
BaltaS
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Ta loop() saukima gali trinti , vistiek baigus vykdyti correct () funkcija grysta i loopa.
o jei nori pradeti is naujo , tai nunulink visus savo skaiciavimo indeksus . correct funkcijoje .
 Arduino spyna
PranešimasParašytas: 2014 03 12, 15:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kaip juos nunulinti? Nes jeigu grįžta automatiškai į loop funkcija, ji neveikia. Nes "enter password" parašytas setup cikle... perkelus tą dalį į loop programa neveikia deramai, nes nespausdina visu numeriuku, tik viena.
 Arduino spyna
PranešimasParašytas: 2014 03 12, 16:04 Pranešti apie taisyklių pažeidimą Atsakyti su citata
mindogas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Taigi labai parastai:

Kodas:
void correct(){
 
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ACCESS GRANTED");
  servo.write(255);
  delay(1000);
  servo.write(0);
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ENTER PASSWORD");
  lcd.setCursor(6, 1);
  i = 0;
  k  = 0;
}


Taip pat:
Kodas:
void incorrect(){
 
  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("ACCESS DENIED");
  delay(3000);
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ENTER PASSWORD");
  lcd.setCursor(6, 1);
  i = 0;
 
}


incorect3 junkcijoje jau turi sekti kol kus paspaustas reset mygtukas ir tik dada vykdyti tokias pacias operacijas kaip correct atveju.

Tik tu ta tikrinima durnavotai darai..
Pirmiausia tai tu tikrini visus sk[] masyvo narus su ps[] masyvu nepriklausomai ar jau ivasti 4 skaiciai ar ne. ar nereiktu daryti taip:
Kodas:
if(i == 4 && sk[0] == ps[0] && sk[1] == ps[1] && sk[2] == ps[2] && sk[3] == ps[3]){
 
  correct();
 
  }
else if(i == 4){
  if(k == 3){
 
  incorrect3();
 
  }
else
{
  incorrect();
  k++;
}
 
  }


Islieka bugas kuomet reikia butinai ivesti likusius skaicius jei supranti kad viena ivedei neteisingai bet cia velgi galima bandyti taisytis..
 Arduino spyna
PranešimasParašytas: 2014 03 12, 16:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Ačiū!!
 Arduino spyna
PranešimasParašytas: 2014 03 13, 18:59 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kažkaip dar neperprantu kai kurių dalykų...
Tarkim noriu padaryti, kad pereitų į kitą ciklą jeigu paspaudžia "#"mygtuką, bet nieko nevyksta...
Kodas:

void correct(){
 
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ACCESS GRANTED");
  char ch = keypad.getKey();
  if(ch == '#'){
   
   change();
   
  }
  servo.write(255);
  delay(5000);
  servo.write(0);
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("ENTER PASSWORD");
  lcd.setCursor(6, 1);
  i = 0;
  k  = 0;
 
}
 Arduino spyna
PranešimasParašytas: 2014 03 13, 20:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pamirsai
Kodas:

//...
  char ch = NO_KEY;
  while (ch == NO_KEY) ch = keypad.getKey();
  if (ch == '#')
//...
 Arduino spyna
PranešimasParašytas: 2014 03 13, 21:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Aš nesuprantu, stebuklai bobų gatvėj. Galit paaiškinti kodėl jūsų pavyzdys veikia, o manasis ne?
 Arduino spyna
PranešimasParašytas: 2014 03 13, 22:46 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
kai ismoksi programuot (ne kodint), tada tokiu klausimu nekils.
siaip tai, tavo programele tera viena mazyte apimtim, bet dyydele nesamone, joje logikos beveik nera.
pradzioje apsibrezk programos veikimo algoritma, tada tik ji koduok atatinkama kalba ir jei tai darysi pakankamai kokybiskai - veiks, gal net is pirmo karto.
 Arduino spyna
PranešimasParašytas: 2014 03 14, 08:07 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kai turėsiu mokytoja, kuris moko, o ne dalina visaverčius patarimus - tikriausiai išmoksiu.
 Arduino spyna
PranešimasParašytas: 2014 03 14, 10:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sopkis
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Išmok ant popieriaus lapo veikimo algoritmą pasibraižyti, ir nekils tokių klausimų.

_________________
LY1PR
 Arduino spyna
PranešimasParašytas: 2014 03 14, 12:32 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Turbut daugelis, katrie kompus susilitavo 198x metais, neturejo visavercio mokytojo, juolab interneto tada irgi praktiskai nebuvo (bent jau CCCP), bet ismokome be vargo ir lituoti ir programuoti.

Kas link tavojo projektelio, tai pasidomek kas yra busenu automatas arba STATE MACHINE
pvz http://goldfishforthought.blogspot.com/2012/10/the-classic-state-machine.html
 Arduino spyna
PranešimasParašytas: 2014 03 14, 17:11 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Tris kartus tą patį pasakėt... Būčiau apsidžiaugęs, jeigu vietoj tų pačių patarimų, būtų kažkas pasakęs kas konkrečiai čia nesamoningo.
Aš nesuprantu kokiu dar algoritmus tokioj programoj paišyt, kur dvi funkcijos (nebent taip įsismulkinti, kad net ekranas ką rodo rašyti). Vienintelis dalykas kurį galėčiau pakeisti, atrodo, tai tą tikrinimą kelintą kartą įvestas neteisingai.


Paskutinį kartą redagavo VytasJ, 2014 04 01, 18:12. Redaguota 1 kartą
 Arduino spyna
PranešimasParašytas: 2014 03 14, 18:47 Pranešti apie taisyklių pažeidimą Atsakyti su citata
VytasJ
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Dėl ko mano variantas netiko supratau.
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  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

Sveiki ir ekologiški maisto produktai

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
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS 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