Avatar billede holmenshus Nybegynder
10. marts 2016 - 19:53 Der er 5 kommentarer og
1 løsning

c++ (arduino)

HEJ. Et lille spørgsmål: på forhånd tak!! se test program.
Programmet virker som sådan - kompiler & uploder ok. Men fanger ikke input
på de 4 pin?? Indgange er selvølgelig pull-down med 10 k. modstande..
Det burde vel virke??
mvh.
Holmenshus..

// test a input


const int num = 4;  //antal pin

const int val[] = {6,7,8,9};  //pin paa arduino
int i = 0;
void  setup() {
for (int i=0;i<num;i++)
pinMode(val[i], INPUT); //sætter 6,7,8,9,pin som input
Serial.begin(9600);
}
void loop()
{
for (i=0;i<num;i++)
{
  delay(300);
  digitalRead(val[i]); //læser input
  delay(200);
Serial.print(val[i]); //printer pin nr, ud OK.(6-9)
Serial.println();
  if (val[i] == HIGH){
Serial.print("virker");
Serial.print(val[i]);
Serial.println();
  }
 
else {
Serial.print(val[i]);
Serial.print("virker ikke");
Serial.println();
}
}
}
Avatar billede sonalias Seniormester
10. marts 2016 - 20:09 #1
Hvordan ved du at den ikke fanger input? Du bruger jo ikke din værdi til noget?
int val = digitalRead(val[i])
Serial.print(val)?
Avatar billede holmenshus Nybegynder
10. marts 2016 - 20:23 #2
Hej det var hurtigt..
Sætter jo en af de 4 indgange høj,  så burde den jo skrive den tekst ud jeg har valgt??
Mvh. Holmenshus
Avatar billede bertelbrander Praktikant
10. marts 2016 - 22:22 #3
Du har:
digitalRead(val[i]); //læser input
Hvor kommer resultatet fra digitalRead hen? Bliver det puttet i val[i]? Eller er det retur værdien fra funktionen?

Er du sikker på at dette er rigtigt?
if (val[i] == HIGH){

Skriver den overhovedet ikke noget ud? Hvordan opfanger du den du forsøger at skrive?
Avatar billede holmenshus Nybegynder
11. marts 2016 - 09:12 #4
Hej.
Tak for svarene, ja  der skal nok skrives i en variabel
Eks. Som i Sonalias svar, int val=digitalRead(val[i]. jeg vender tilbage hvis, og om det virker..
Mvh. Holmenshus
Avatar billede holmenshus Nybegynder
11. marts 2016 - 16:00 #5
Hej igen..
Har fået det til at virke, se ændringerne..

Tak igen.
smider I et svar
mvh. Holmenshus

// test a input

int wall=0;//her er ændring
const int num = 2;  //antal pin

const int val[] = {6,7};  //pin paa arduino
int i = 0;
void  setup() {
for (int i=0;i<num;i++)
pinMode(val[i], INPUT); //sætter 6,7,8,9,pin som input
Serial.begin(9600);
}
void loop()
{
for (i=0;i<num;i++)
{
  delay(300);
int vall=digitalRead(val[i]); //læser input  her er ændring
  delay(200);   
 
Serial.print(val[i]); //printer pin nr, ud OK.(6-7)

  if (vall == HIGH){  //her er ændring
Serial.print("virker");
Serial.println();
Serial.print(vall,val[i]);  //også her ændring
Serial.println();
  }
 
else {
Serial.print(vall,val[i]);    //også her ændring
Serial.print("virker ikke");
Serial.println();
}
}
}
Avatar billede sonalias Seniormester
12. marts 2016 - 11:35 #6
ja, der er ikke meget ved at læse noget hvis man ikke gemmer værdien :))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester