Pomoc-Arduino

Odgovori
Message
Autoru
ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Pomoc-Arduino

#1 Post od ivana96 » Čet Maj 24, 2018 5:06 pm

Pozdrav ljudi ! :) Mucim se sa jednim zadatkom,prvu stavku sam uradila,za drugu mi izbacuje neku gresku a ne znam zasto mi je to netacno..Postavljam vam sliku koda (na vezbama sam slikala ,nisam stigla da screenshootujem i posaljem na email).Pa ako neko moze da mi pomogne,samo prve 3 stavke da mi rade .Hvala svima unapred! :)
Nemate potrebne dozvole da pogledate prikačene fajlove u ovom postu.

Korisnikov avatar
elektricar024
Site Admin
Postovi: 1052
Pridružio se: Ned Maj 15, 2016 1:27 pm
Lokacija: Subotica
Kontakt:

Re: Pomoc-Arduino

#2 Post od elektricar024 » Čet Maj 24, 2018 8:44 pm

Ovo je zajebancija. Ali da vidimo šta će od ovoga ispasti.
Postavi ceo kod. Ne na slikama već tekstualno, napisano. Ovo deluje skroz bzvz.....
Čak su mešni jezici između C i C++.. Odluči....
Ne postoji višak alat, samo retko korišten :confusion-confused:

Korisnikov avatar
DenisHD
Početnik
Postovi: 363
Pridružio se: Sre Jan 04, 2017 11:32 am

Re: Pomoc-Arduino

#3 Post od DenisHD » Pet Maj 25, 2018 7:05 am

Evo koda, ali hvata onaj delay od 500ms koji sam ubacio, tako da malo kao da baguje (tačnije, ne odaziva se odmah, nego moram 500 - 1000 ms da držim taster pritisnut, pa se tek onda uključi led i ispiše na serial monitoru, da je led uključena, i onda isto drži led upaljenu 500 - 1000ms , nakon puštanja tastera).. ali u suštini radi.. Probaj i ti sad nešto da menjaš, da vidiš kako će da radi.. Ja moram sad već da se spremam za sk pa nemam vremena...

Kod: Obeleži sve

const int LD1 = 2;
const int LD2 = 3;
const int LD3 = 4;
const int LD4 = 5;

const int BTN1 = 6;
const int BTN2 = 7;
const int BTN3 = 8;
const int BTN4 = 9;

int BTN1state = 0;
int BTN2state = 0;
int BTN3state = 0;
int BTN4state = 0;

int BTN1_presses = 0;
int BTN2_presses = 0;
int BTN3_presses = 0;
int BTN4_presses = 0;

void setup(){
  Serial.begin(9600);
  
  pinMode(LD1, OUTPUT);
  pinMode(LD2, OUTPUT);
  pinMode(LD3, OUTPUT);
  pinMode(LD4, OUTPUT);
  
  pinMode(BTN1, INPUT_PULLUP);
  pinMode(BTN2, INPUT_PULLUP);
  pinMode(BTN3, INPUT_PULLUP);
  pinMode(BTN4, INPUT_PULLUP);
}

void loop(){
  BTN_presses();
  LDstate();
  
  BTN1state = digitalRead(BTN1);
  BTN2state = digitalRead(BTN2);
  BTN3state = digitalRead(BTN3);
  BTN4state = digitalRead(BTN4);

  if (BTN1state == LOW) {
    digitalWrite(LD1, HIGH);
  }
  else {
    digitalWrite(LD1, LOW);
  }

  if (BTN2state == LOW) {
    digitalWrite(LD2, HIGH);
  }
  else {
    digitalWrite(LD2, LOW);
  }

  if (BTN3state == LOW) {
    digitalWrite(LD3, HIGH);
  }
  else {
    digitalWrite(LD3, LOW);
  }

  if (BTN4state == LOW) {
  }
  else {
    digitalWrite(LD4, LOW);
  }
}

void BTN_presses(){
  if (BTN1state == LOW) {
    BTN1_presses++;
    delay(250);
  }else{}

  if (BTN2state == LOW) {
    BTN2_presses++;
    delay(250);
  }else{}

  if (BTN3state == LOW) {
    BTN3_presses++;
    delay(250);
  }else{}

  if (BTN4state == LOW) {
    BTN4_presses++;
    delay(250);
  }else{}
}

void LDstate(){
  if (BTN1state == LOW) {
    Serial.print("LD1 is ON.  ");
    Serial.print("BTN1 presses: ");
    Serial.println(BTN1_presses);
    delay(500);
  }
  else {
    Serial.println("LD1 is OFF.");
    delay(500);
  }

  if (BTN2state == LOW) {
    Serial.print("LD2 is ON.  ");
    Serial.print("BTN2 presses: ");
    Serial.println(BTN2_presses);
    delay(500);
  }
  else {
    Serial.println("LD2 is OFF.");
    delay(500);
  }

  if (BTN3state == LOW) {
    Serial.print("LD3 is ON.  ");
    Serial.print("BTN3 presses: ");
    Serial.println(BTN3_presses);
    delay(500);
  }
  else {
    Serial.println("LD3 is OFF.");
    delay(500);
  }

  if (BTN4state == LOW) {
    Serial.print("LD4 is ON.  ");
    Serial.print("BTN4 presses: ");
    Serial.println(BTN4_presses);
    delay(500);
  }
  else {
    Serial.println("LD4 is OFF.");
    delay(500);
  }
}

ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Re: Pomoc-Arduino

#4 Post od ivana96 » Pet Maj 25, 2018 7:17 am

Hvala punoo ,sad cu da prekucam pa javljam ako sta nije jasno :)

ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Re: Pomoc-Arduino

#5 Post od ivana96 » Pet Maj 25, 2018 7:37 am

elektricar024 napisao:
Čet Maj 24, 2018 8:44 pm
Ovo je zajebancija. Ali da vidimo šta će od ovoga ispasti.
Postavi ceo kod. Ne na slikama već tekstualno, napisano. Ovo deluje skroz bzvz.....
Čak su mešni jezici između C i C++.. Odluči....
Evo,ostavljam svoj pokusaj koda..Ne znam,na vezbama je ovako radjeno,ja sam samo izmenila neke delove za zadatak,ali sintaksa je ovako radjena kod nas ,mozda mi zato i ne radi :?

Kod: Obeleži sve

#define LED1 26
#define LED2
#define LED3
#define LED4
#define LED_NUM 4
#define BTN1
#define BTN2
#define BTN3
#define BTN4

void setup(){
  for(int i=0;i<LED_NUM;i++){
    pinMode(LED+1,OUTPUT);
    digitalWrite(LED1+1,LOW);
  }
  Serial.begin(9600);
}
int fun1(){
  if(digitalRead(BTN1)){
    digitalWrite(LED1,HIGH);
  }
  else{
    digitalWrite(LED1,LOW);
  }
  if(digitalRead(BTN2)){
    digitalWrite(LED2,HIGH);
  }
  else{
    digitalWrite(LED2,LOW);
  }
  if(digitalRead(BTN3)){
    digitalWrite(LED3,HIGH);
  }
  else{
    digitalWrite(LED3,LOW);
  }
  if(digitalRead(BTN4)){
    digitalWrite(LED4,HIGH);
  }
  else{
    digitalWrite(LED4,LOW);
  }
  digitalRead(BTN1);
}

Korisnikov avatar
DenisHD
Početnik
Postovi: 363
Pridružio se: Sre Jan 04, 2017 11:32 am

Re: Pomoc-Arduino

#6 Post od DenisHD » Pet Maj 25, 2018 10:46 pm

Koliko sam ja skontao, najveća greška ti je što nemaš void loop(){} funkciju... Btw void setup(){} i void loop(){} su minimalne funkcije za rad arduina i samo kompajlovanje... Ako jednu od njih nemaš, neće ti hteti kompajlirati taj kod, a kamoli uploadovati isti... moraš da napraviš void loop funkciju, i u njoj iskucaš fun1(); ...
A sledeće je onaj digitalRead(BTN1); na kraju fun1(); funkcije.., to ti je bespotrebno, izbriši to...

Korisnikov avatar
elektricar024
Site Admin
Postovi: 1052
Pridružio se: Ned Maj 15, 2016 1:27 pm
Lokacija: Subotica
Kontakt:

Re: Pomoc-Arduino

#7 Post od elektricar024 » Sub Maj 26, 2018 6:56 am

Ovde. svašta ima. Prvo, nije difinisao Izlazne i ulazne pinove. Puna sintaks greškaka ima.

Unutar FOR ciklusa nije definisana, promenljiva nasprem čega da pokrene ciklus.
Ne znam zašto je tamo Serial.begin() kada se ne koristi. ITD,,,,
Ne postoji višak alat, samo retko korišten :confusion-confused:

Korisnikov avatar
zokce
Početnik
Postovi: 973
Pridružio se: Sre Okt 18, 2017 7:57 pm
Lokacija: Juzna Srbija

Re: Pomoc-Arduino

#8 Post od zokce » Sub Maj 26, 2018 8:54 am

Ajde, ovo mora da je prosto, ja sam ovakve stvari radio jos ohoho godina ranijem na Motoroli 6800. Nista se nije bitno promenilo.
Obratite paznju na famoznih 50ms, to je 20x u sekundi, obican trik zadatak. Ispis je najobicnija vezba sa nulama i jedinicama. Ja ne poznajem jezik u kome se to tacno pise pa ne mogu da pomognem u sintaksi, ali je programiranje kao takvo isto kao sto je bilo kada sam je to ucio. Definicija odredjenih parametara, poneka for petlja, poneko IF grananje, rad sa registria procesora, osnovne radnje.
Без старца нема ударца!

ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Re: Pomoc-Arduino

#9 Post od ivana96 » Sub Maj 26, 2018 10:07 am

DenisHD napisao:
Pet Maj 25, 2018 7:05 am
Evo koda, ali hvata onaj delay od 500ms koji sam ubacio, tako da malo kao da baguje (tačnije, ne odaziva se odmah, nego moram 500 - 1000 ms da držim taster pritisnut, pa se tek onda uključi led i ispiše na serial monitoru, da je led uključena, i onda isto drži led upaljenu 500 - 1000ms , nakon puštanja tastera).. ali u suštini radi.. Probaj i ti sad nešto da menjaš, da vidiš kako će da radi.. Ja moram sad već da se spremam za sk pa nemam vremena...

Kod: Obeleži sve

const int LD1 = 2;
const int LD2 = 3;
const int LD3 = 4;
const int LD4 = 5;

const int BTN1 = 6;
const int BTN2 = 7;
const int BTN3 = 8;
const int BTN4 = 9;

int BTN1state = 0;
int BTN2state = 0;
int BTN3state = 0;
int BTN4state = 0;

int BTN1_presses = 0;
int BTN2_presses = 0;
int BTN3_presses = 0;
int BTN4_presses = 0;

void setup(){
  Serial.begin(9600);
  
  pinMode(LD1, OUTPUT);
  pinMode(LD2, OUTPUT);
  pinMode(LD3, OUTPUT);
  pinMode(LD4, OUTPUT);
  
  pinMode(BTN1, INPUT_PULLUP);
  pinMode(BTN2, INPUT_PULLUP);
  pinMode(BTN3, INPUT_PULLUP);
  pinMode(BTN4, INPUT_PULLUP);
}

void loop(){
  BTN_presses();
  LDstate();
  
  BTN1state = digitalRead(BTN1);
  BTN2state = digitalRead(BTN2);
  BTN3state = digitalRead(BTN3);
  BTN4state = digitalRead(BTN4);

  if (BTN1state == LOW) {
    digitalWrite(LD1, HIGH);
  }
  else {
    digitalWrite(LD1, LOW);
  }

  if (BTN2state == LOW) {
    digitalWrite(LD2, HIGH);
  }
  else {
    digitalWrite(LD2, LOW);
  }

  if (BTN3state == LOW) {
    digitalWrite(LD3, HIGH);
  }
  else {
    digitalWrite(LD3, LOW);
  }

  if (BTN4state == LOW) {
  }
  else {
    digitalWrite(LD4, LOW);
  }
}

void BTN_presses(){
  if (BTN1state == LOW) {
    BTN1_presses++;
    delay(250);
  }else{}

  if (BTN2state == LOW) {
    BTN2_presses++;
    delay(250);
  }else{}

  if (BTN3state == LOW) {
    BTN3_presses++;
    delay(250);
  }else{}

  if (BTN4state == LOW) {
    BTN4_presses++;
    delay(250);
  }else{}
}

void LDstate(){
  if (BTN1state == LOW) {
    Serial.print("LD1 is ON.  ");
    Serial.print("BTN1 presses: ");
    Serial.println(BTN1_presses);
    delay(500);
  }
  else {
    Serial.println("LD1 is OFF.");
    delay(500);
  }

  if (BTN2state == LOW) {
    Serial.print("LD2 is ON.  ");
    Serial.print("BTN2 presses: ");
    Serial.println(BTN2_presses);
    delay(500);
  }
  else {
    Serial.println("LD2 is OFF.");
    delay(500);
  }

  if (BTN3state == LOW) {
    Serial.print("LD3 is ON.  ");
    Serial.print("BTN3 presses: ");
    Serial.println(BTN3_presses);
    delay(500);
  }
  else {
    Serial.println("LD3 is OFF.");
    delay(500);
  }

  if (BTN4state == LOW) {
    Serial.print("LD4 is ON.  ");
    Serial.print("BTN4 presses: ");
    Serial.println(BTN4_presses);
    delay(500);
  }
  else {
    Serial.println("LD4 is OFF.");
    delay(500);
  }
}
Imam par pitanja..Zasto stavljas ove diode da su jednake 2,3,4 pa i BTN-ove =6,7,8 ....? Razlika izmedju INPUT i INPUT_PULLUP ?

ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Re: Pomoc-Arduino

#10 Post od ivana96 » Sub Maj 26, 2018 10:09 am

#define dump(v) Serial.println(v) ,ili dump(pin7) cemu ovo dump konkretno sluzi? I neka preporuka za sajt ili neki pdf gde ima lepo objasnjeno sve o Arduinu..gledala sam neke tutorijale samo al mi treba malo opsirnije

Korisnikov avatar
DenisHD
Početnik
Postovi: 363
Pridružio se: Sre Jan 04, 2017 11:32 am

Re: Pomoc-Arduino

#11 Post od DenisHD » Sub Maj 26, 2018 8:35 pm

Pa tako im dodeljujem pinove.. tako da npr. LD1 = 2; znači da sam toj promenljivoj dodelio pin 2... Razlika izmedju INPUT i INPUT_PULLUP naredbi je ta, što sa INPUT_PULLUP podešavaš odredjeni pin kao ulaz i uključuješ interni pullup "otpornik", tačnije to je FET tranzistor koji se ponaša kao otpornik... Dok sa INPUT naredbom isto podešavaš odredjeni pin kao ulaz, ali je u ovom slučaju taj integrisani "otpornik" isključen... U tom slučaju je preporučljivo staviti sa 5V na taj pin koji je ulaz otpornik u opsegu od 1kOhm, do 10kOhm...

ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Re: Pomoc-Arduino

#12 Post od ivana96 » Ned Maj 27, 2018 9:22 am

DenisHD napisao:
Sub Maj 26, 2018 8:35 pm
Pa tako im dodeljujem pinove.. tako da npr. LD1 = 2; znači da sam toj promenljivoj dodelio pin 2... Razlika izmedju INPUT i INPUT_PULLUP naredbi je ta, što sa INPUT_PULLUP podešavaš odredjeni pin kao ulaz i uključuješ interni pullup "otpornik", tačnije to je FET tranzistor koji se ponaša kao otpornik... Dok sa INPUT naredbom isto podešavaš odredjeni pin kao ulaz, ali je u ovom slučaju taj integrisani "otpornik" isključen... U tom slučaju je preporučljivo staviti sa 5V na taj pin koji je ulaz otpornik u opsegu od 1kOhm, do 10kOhm...
Pitam jer sam mislila da onaj broj 26 sto pise pored LD1 na plocici oznacava njen pin...Hvala jos jednom :)

Odgovori

Ko je OnLine

Korisnika u ovom forumu: Nema registrovanih korisnika i 1 gost