ARDUINO sumnjivo ponasanje

Programi za crtanje shema i pločica, simuliranje el. sklopova, savjeti. Diskusija o ostalim programima vezanim za elektroniku.

Moderators: stojke369, pedja089, [eDo], trax

ARDUINO sumnjivo ponasanje

Postby Cracky » 20-05-2016, 09:40

Pozdrav :)

obicno kad neko eksperimentise sa necim i kad mu to nesto proradi, covek bude zaokupljen time sto je stvar proradila i ne gleda na to - kako radi. Kod mene to nije slucaj i necu da izostavim nesto, pa zelim da resim sledeci (moguci) problem:

imam cetiri dugmeta na daljinskom, za sad (radi probanja) palim/gasim obican laser modul.

Sledeci kod je za dugme B, koje dok drzim pritisnuto - laser svetli - kad pustim - laser se iskljuci:

Code: Select all
if (buttonB > sig) {
      digitalWrite(laser, HIGH);
   
  }       else {
      digitalWrite(laser, LOW);
     
    }


( sig je definisan kao nula 0 )

evo mog problema sa dugmetom A:

Code: Select all
if (buttonA > sig) {

      digitalWrite(laser, HIGH);
   
  }


Kod dugmeta B laser svetli normalnog intenziteta. Kod dugmeta A laser svetli za otprilike 25% slabije.
Posto ima razlike u intenzitetu, bojim se da ne podrndam celinu u buducnosti, zamolio bih nekog da mi objasni zasto je to tako - i - da li je u redu da recimo ubuduce dugmice programiram kao dugme A (jer prevashodno stedim memoriju) ili da to bude jasno definisano kao sa dugmetom B?

- misljenja sam da to sto svetli slabije, ima veze sa brojem proveravanja, pa ne dobija konstanti signal pa trepce ali toliko brzo da se cini da radi slabije....

hvala :)
Cracky
 
Posts: 31
Joined: 25-03-2014, 10:25

Re: ARDUINO sumnjivo ponasanje

Postby Black » 25-05-2016, 09:12

Ajd zaljepi čitav kod, nesviđa mi se način na koji si ovaj pisao. Zašto štediš memoriju?
Spajaš lasere direktno na arduino pin? koliko laser vuče struje?
User avatar
Black
 
Posts: 972
Joined: 17-12-2008, 15:44

Re: ARDUINO sumnjivo ponasanje

Postby Cracky » 25-05-2016, 11:46

Black wrote:Ajd zaljepi čitav kod, nesviđa mi se način na koji si ovaj pisao. Zašto štediš memoriju?
Spajaš lasere direktno na arduino pin? koliko laser vuče struje?



Laser je na pinu direktno, 5v vuce...

evo videa da vidis o cemu se tacno radi:
Code: Select all
https://youtu.be/jQycVQ8KlZ8


A evo i koda:
Code: Select all
int D0 = 2;
int D1 = 3;
int D2 = 4;
int D3 = 5;
int VT = 6;
int laser = 7;
int sig = 0;


void setup() {

  Serial.begin(9600);
  // inputi
  pinMode(D0, INPUT);
  pinMode(D1, INPUT);
  pinMode(D2, INPUT);
  pinMode(D3, INPUT);
  pinMode(VT, INPUT);
  pinMode(D0, INPUT);
  pinMode (laser, OUTPUT);     
}


void loop() {

  int buttonB = digitalRead(D0);
  int buttonD = digitalRead(D1);
  int buttonA = digitalRead(D2);
  int buttonC = digitalRead(D3);
  int PinStateVT = digitalRead(VT);

if (buttonA > sig) {

      digitalWrite(laser, HIGH);
   
  }


if (buttonB > sig) {
      digitalWrite(laser, HIGH);
   
  }       else {
      digitalWrite(laser, LOW);
     
    }

}
 



Hvala ti veliko :)
Cracky
 
Posts: 31
Joined: 25-03-2014, 10:25

Re: ARDUINO sumnjivo ponasanje

Postby Maki » 25-05-2016, 20:48

Imas kak bi rekli jedan bug u kodu.
Naime recimo da je ispunjen uvijet A za prvi if te on upali laser. Potom dode drugi if i ako (else) nije ispunjen, a uzet cemo da nije, gasi laser. I tako u krug. Zbog toga se laser stalno pali i gasi pa imas dojam slabijeg inteziteta. Makni prvi if i sve bu ok.
Inace prvi if bez elsa nemre gasit laser stoga je drugi if bolja solucija jer ako nije pritisnuto tipkalo odradi else te ugasi laser. U suprotnom ak je uvijet ispunjen upali laser.
Zakomplicirah ga skroz na skroz...
Maki
 
Posts: 766
Joined: 02-07-2012, 12:54

Re: ARDUINO sumnjivo ponasanje

Postby Black » 26-05-2016, 12:31

Ja bi to ovako odradio
Code: Select all

while(digitalRead(D0)==HIGH)
{
digitalWrite(laser,HIGH);
}
digitalWrite(laser,LOW);
while(digitalRead(D1)==HIGH)
{
digitalWrite(laser,HIGH);
}
digitalWrite(laser,LOW);




I tako za ostala dva dugmića

A ovo možeš izbacit
Code: Select all
pinMode(D0, INPUT);
  pinMode(D1, INPUT);
  pinMode(D2, INPUT);
  pinMode(D3, INPUT);
  pinMode(VT, INPUT);
  pinMode(D0, INPUT);
  pinMode (laser, OUTPUT);
User avatar
Black
 
Posts: 972
Joined: 17-12-2008, 15:44

Re: ARDUINO sumnjivo ponasanje

Postby Cracky » 27-05-2016, 20:03

Hvala obojici na pomoci, ici cu u tom smeru =o)
Cracky
 
Posts: 31
Joined: 25-03-2014, 10:25

Re: ARDUINO sumnjivo ponasanje

Postby Black » 27-05-2016, 21:08

Uhh zeznuo sam ne izbacit ovo pin mode, to ostavi nego ono što si pravio variable buttonread
User avatar
Black
 
Posts: 972
Joined: 17-12-2008, 15:44

Re: ARDUINO sumnjivo ponasanje

Postby Cracky » 29-05-2016, 21:15

Black wrote:Uhh zeznuo sam ne izbacit ovo pin mode, to ostavi nego ono što si pravio variable buttonread


yup, radi besprekorno :) Hvala puno :)
Cracky
 
Posts: 31
Joined: 25-03-2014, 10:25

Re: ARDUINO sumnjivo ponasanje

Postby Cvik_Dasa » 11-02-2017, 03:57

možda nešto jednostavnije ako će nekome trebat u budučnosti.


Code: Select all
If ((digitalRead(D0) == HIGH) || (digitalRead(D1)==HIGH)) {
digitalWrite(laser,HIGH);
}
else{
digitalWrite(laser,LOW);
}


While loop mi se ne sviđa jer će program cijelo vrijeme stajat na mjestu dok drži tipku stisnutu.
Cvik_Dasa
 
Posts: 157
Joined: 23-11-2010, 05:13


Return to Programi

Who is online

Users browsing this forum: No registered users and 1 guest

BLOG RAZMJENA