Pages: [1] 2   Go Down
Author Topic: Mitt første program vil ikke kjøre - hva er feil?  (Read 3002 times)
0 Members and 1 Guest are viewing this topic.
Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mottok i dag min Arduino UNO og kjørte fersking-programmene "Button" og "Blink" uten problemer.

Så forsøkte jeg å kombinere komandoene i fra disse programmene for å lage min egen versjon. Den fungerte ikke. Hva er galt?

Det står beskrevet i tekstfeltet  hvilke oppgaver programmet skal utføre.

Mvh
BjornTore

Logged

BjornTore

Denmark
Offline Offline
Jr. Member
**
Karma: 0
Posts: 72
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi

kan du ikke ligge koden ind i din tråd stedet for som en vedhæftet fil. Kører ikke selv med Arduino 1.0 så kan derfor ikke læse .ino filtypen.

Der er en 'kode' knap til indsættelse af kode i din topic.
Logged

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

/*
  Slippe to dråper tett etter hverandre
 
  Venter på START-pulsen før den åpner magnetventilen i 80ms (slipper dråpe 1), lukker magnetventilen i 20ms (da er har dråpe 1 sluppet taket og
  fallt litt), åpner magnetventilen i 80ms (slipper dråpe 2), lukker magnetventilen og venter i 7 sekund
  (så vannet får roet seg). Venter så på ny START-puls.
 
Krets:
Min Arduino har en fast LED mellom pin 13 og GND. Jeg lar denne simulerer en magnetventil (dråpeslipperen).
Trykknappen START er koplet mellom pin3 og +5V
En 10K resistor er koplet mellom pin3 og GND
 */

// set pin numbers:
const int buttonPin = 3;  // Inngang 3 er normalt LOW, trekkes HIGH av START-puls-knappen
const int ledPin = 13;    // LED utgangen settes til pin 13 (den er normalt lav)

pinMode(13, OUTPUT);
pinMode(3, INPUT);}

void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on my Arduino board:
int buttonState = 0;
}

void loop() {
  if (buttonState == HIGH);
  digitalWrite(13, HIGH);   // set the LED on
  delay(80);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(20);              // wait for a second
  digitalWrite(13,HIGH);
  delay(80);
  digitalWrite(13,LOW);
  delay(7000);
}
Logged

BjornTore

Denmark
Offline Offline
Jr. Member
**
Karma: 0
Posts: 72
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prøv at sætte dine delay højere.. Minimum 500 ellers kan ikke se om din LED slukker eller tænder..
Logged

Denmark
Offline Offline
Jr. Member
**
Karma: 0
Posts: 72
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hov... du mangler da også at læse din tilstand på din knap..
husk
 
Code:
buttonState = digitalRead(buttonPin);

i din loop
Logged

Denmark
Offline Offline
Edison Member
*
Karma: 35
Posts: 1063
Happy Hobbyist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Du mangler også  nogle {  } i din if sætning

 if (buttonState == HIGH){

....

}
Logged

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Da har jeg endret mitt sketch slik dere foreslår, men det virker fortsat ikke. Problemet er at jeg blir nektet å Uploade sketch'et. Han markerer da linjen "pinMode(13, OUTPUT)" og gir meg feilmeldingen
"expected construktor, destructor, or type conversion before '(' token"

Slik ser sketchet ut etter endringene:

/*
  Slippe to dråper tett etter hverandre
 
  Venter på START-pulsen før den åpner magnetventilen i 80ms (slipper dråpe 1), lukker magnetventilen i 20ms (da er har dråpe 1 sluppet taket og
  fallt litt), åpner magnetventilen i 80ms (slipper dråpe 2), lukker magnetventilen og venter i 7 sekund
  (så vannet får roet seg). Venter så på ny START-puls.
 
Krets:
Min Arduino har en fast LED mellom pin 13 og GND. Jeg lar denne simulerer en magnetventil (dråpeslipperen).
Trykknappen START er koplet mellom pin3 og +5V
En 10K resistor er koplet mellom pin3 og GND
 */

// set pin numbers:
const int buttonPin = 3;  // Inngang 3 er normalt LOW, trekkes HIGH av START-puls-knappen
const int ledPin = 13;    // LED utgangen settes til pin 13 (den er normalt lav)

pinMode(13, OUTPUT);
pinMode(3, INPUT);}

void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on my Arduino board:
int buttonState = 0;
}

void loop() {
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH){
  digitalWrite(13, HIGH);   // set the LED on
  delay(500);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(500);              // wait for a second
  digitalWrite(13,HIGH);
  delay(500);
  digitalWrite(13,LOW);
  delay(7000);
}

Logged

BjornTore

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Jippi, nå fungerer det som tenkt. I morgen blir det å kople til magnetventilene og justere timerne slik at det blir optimalt. Tusen takk for hjelpen alle sammen....-så langt :-)

/*
  SLIPPE TO DRÅPER TETT ETTER HVERANDRE – VIRKER FAKTISK 

Inngang 2 trekkes lava via en 10K resistor og trekkes til +5V ved hjelp av en momentan trykkbryter
 */

const int buttonPin=2;const int ledPin=13;int buttonState=2;
void setup(){pinMode(ledPin, OUTPUT);pinMode(buttonPin, INPUT);}
void loop(){buttonState=digitalRead(buttonPin);
if(buttonState == HIGH){
delay(1000);
digitalWrite(ledPin,HIGH);
delay(100);
digitalWrite(ledPin,LOW);delay(200);
digitalWrite(ledPin,HIGH);
delay(100);
digitalWrite(ledPin,LOW);}}



Logged

BjornTore

Copenhagen, Denmark
Offline Offline
Edison Member
*
Karma: 32
Posts: 1211
Have you testrun your INO file today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Når du skriver her og du har din kode highlight - så tryk på "#"-ikonet ovenfor editboksen. Den sætter et [ code ]  og [ / code ] par rundt om den, så den (a) kommer i en pæn kasse med scrollbar, og (b) ikke oversætter paranteser og lignende til smiley osv.

Da input editoren ikke kan lide lange mails (på min IE7), skriver jeg dem i notepad og cut-n-paster dem ind i input feltet. Ja, det betyder jeg selv må skrive de der kant-parantes tags. sån er livet smiley-wink

Hvis du vil bruge en resistor på switch indgang, så er det fint med mig smiley Men du kan spare det ved at buge den interne resistor som aktiveres ved at skrive til en port du har sat til input (modsigende, ja) og HIGH sætter en 20Kohm op mod +5V. Så kan kontakten trække pinen til GND.

Og så koden. Din tidligere fejl er et "}" for meget i linjen efter den som fejlmemdningen syår på. Det sker at man skal se på linjen før/efter en fejlmeldning. Jeg kunne bedre lide den end din meget korte nyere eksempel.

Glæder mig til billeder  smiley-cool
Logged

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

# Tusen takk for tipsene.

Altså jeg setter at det normale er at inngangen er HIGH, og så drar jeg den bare rett ned til GND for å trigge den. Smart! Håper ikke jeg risikerer å ødelegge noe for det høres litt brutalt ut.

Jeg fikk ikke kjørt noen "Live test" i dag heller. Møtte på utfordringer med å klare å drive den kraftige magnetventilen. Se eget topic.

Og ja, det kommer flotte dråpebilder om ikke så lenge. Helt sikkert!

Logged

BjornTore

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nå har jeg fått ordnet en driverkrets som fungerer. Testet programmet mot magnetventilen og fikk lekt litt med å slippe to påfølgende dråper. For vanlig vann og med fallhøyde 27cm så virker det som en passende innstilling kan være 80ms mellom dråpene, samt at begge dråpene har en størrelse på 40(ms).

Måtte imidlertid trigge kamera og blits manuelt så jeg fikk vist ingen gode bilder, men jeg observerte flere splæsj, så dråpene funger. Dråpene var imidlertid ikke så forutsigbare og ensartet som jeg hadde håpet på, men det er muligens bare en justeringssak.

Da blir neste prosjekt å lage flere utgangskretser, samt implementere flere komponenter med i programmet.
Logged

BjornTore

Denmark
Offline Offline
Jr. Member
**
Karma: 0
Posts: 72
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Spændende.. glæder mig til at du får taget nogle gode billeder..

Sig til hvis du render ind i problemer...
Logged

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Programmet og Arduinoen gjør jobben helt utmerket. Legger med noen bilder.

Bildet med 4 tilsynelatende like dråper er faktisk tatt av fire forskjellige dråper, dog med samme setting på timerne. Ganske forutsigbart resultat med andre ord. Veldig fornøyd!!



* 222.jpg (25.79 KB, 623x897 - viewed 36 times.)

* 333.jpg (21.96 KB, 640x960 - viewed 32 times.)

* like.jpg (26.03 KB, 550x762 - viewed 33 times.)
Logged

BjornTore

Denmark
Offline Offline
Jr. Member
**
Karma: 0
Posts: 72
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Rigtig fedt!

Er meget imponeret!

Keep it up!
Logged

Copenhagen, Denmark
Offline Offline
Edison Member
*
Karma: 32
Posts: 1211
Have you testrun your INO file today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ditto !
Logged

Pages: [1] 2   Go Up
Jump to: