Go Down

Topic: Hjælp til water level sensor code (Read 11117 times) previous topic - next topic

johnnyAlb

Hej Igen Msquare

Ja hele problemet er at jeg ikke kan forstå, og få det code halløj banket ind, selvom jeg har læst, læst & læst...... (har bogen Getting started with arduino), set diverse video'er på youtube mm, og jeg har da også været ved at gi op en hulens masse gange, men som jeg læste, (Arduino Is Not For Quitters), og så har jeg jo også brugt en del penge på dele mm, så jeg må kæmpe videre med at prøve at forstå det (håber det kommer en dag), men det skal så også siges at jeg har ADD og vi gir ski'ikke så nemt op  :P

Så jeg prøver da lige igen  :)

Men du har da været en rigtig stor hjælp indtil videre, og jeg har da også forstået lidt/noget af det  :P så tak for det.

PS. Jeg skal nok lade være med at Quote det fremover, hihi  :)

Mvh Johnny

3dprinter

Det skal du ikke tage så tungt. Nogle finder det sværere end andre, men sådan er det jo med så meget. Jeg har svært at forstå pensionsordninger. Jeg går kold efter 2 minutters studie af "afkastningsgrad".

Nu skriver jeg dit program - ikke noget jeg normalt gør, men nogle gange er det vejen frem for nogle. Så må du tilrette pin nummre og grænseværdier og den slags.

Du skal nok udkommentere RTC, DS1307 delen indtil du får styr på den. Indstille tid på den er en once-in-a-lifetime sag, så skriv et lille seperat program for det.
Code: [Select]
/*--------------------------------------------------*\
| PumpIt                                             |
| Overvåg vand niveau og tænd tilsvarende ventiler   |
*\--------------------------------------------------*/

#include <Wire.h>     // Tilføj I2C bibliotek
#include <DS1307.h>   // tilføj RTC kode. Denne inklude definerer også RTC variablen

/* =====  Pin defenitioner  ==== */
const int VenstreTankNiveau = A0 ;
const int MellemTankNiveau = A1 ;
const int Tredje = A4 ;
const int Reserve = A5 ;
// NB: A2, A3 bruges af SDA/SCL, må ikke bruges til sensorer

const int VenstreVentil = 4 ;
const int MellemVentil = 5 ;
const int TredjeVentil = 6 ;
const int ReserveVentil = 7 ;

/* ==== Globale Variabler === */

int Sensor ;  // unødvendigt den er global, men pyt.

// extern DS1307new RTC; // (udført i DS1307.h)

/*---------*\
|   Setup   |
\*---------*/

void setup() {
  // --- RealTimeClock
  //RTC.startClock();           should be on already
  RTC.ctrl = 0x00; RTC.setCTRL();  // Disable the SqW pulse

  // Output pins
  pinMode(VenstreVentil, OUTPUT) ;
  pinMode(MellemVentil, OUTPUT) ;
  pinMode(TredjeVentil, OUTPUT) ;
  pinMode(ReserveVentil, OUTPUT) ;

  // --- Serial line
  Serial.begin(9600) ;
  Serial.println("Pumpit, version 1.0") ;

}


/*---------*\
|   Loop    |
\*---------*/
void loop() {
  Sensor = analogRead(VenstreTankNiveau) ;
  if ( Sensor < 300 ) digitalWrite(VenstreVentil, HIGH) ; // Tænd når under "lav" niveau
  if ( Sensor > 400 ) digitalWrite(VenstreVentil, LOW) ;  // Sluk hvis over "høj" niveau
  Serial.print("Venstre:");Serial.print(Sensor) ;

  Sensor = analogRead(MellemVentil) ;
  if ( Sensor < 323 ) digitalWrite(MellemVentil, HIGH) ; // Tænd når under "lav" niveau
  if ( Sensor > 388 ) digitalWrite(MellemVentil, LOW) ;  // Sluk hvis over "høj" niveau
  Serial.print(" Mellem:");Serial.print(Sensor) ;

  Sensor = analogRead(TredjeVentil) ;
  if ( Sensor < 77  ) digitalWrite(TredjeVentil, HIGH) ; // Tænd når under "lav" niveau
  if ( Sensor > 520 ) digitalWrite(TredjeVentil, LOW) ;  // Sluk hvis over "høj" niveau
  Serial.print(" Tredje:");Serial.print(Sensor) ;

//  Sensor = analogRead(VReserveVentil) ;
//  if ( Sensor < 300 ) digitalWrite(ReserveVentil, HIGH) ; // Tænd når under "lav" niveau
//  if ( Sensor > 400 ) digitalWrite(ReserveVentil, LOW) ;  // Sluk hvis over "høj" niveau
//  Serial.print("Reserve:");Serial.println(Sensor) ;

  Serial.println() ;
  delay(2000) ;   // Stå stille, gør intet, mens 2 sekunder går sin vej.
}

Ingen garantier, jeg er også almindelig dødelig og laver fejl, jeg har kun testet at det kompilerer.

johnnyAlb

Hej Msquare

Jeg prøver også på ikke at ta det så tungt, men det er da meget irriteret at det bare ikke vil hænge fast og du har helt ret, for der er altid noget man bare ikke kan lære, og det er jo forskelligt fra person til person.

Men jeg kan ikke takke dig nok for at du gider at ta dig tid til at hjælpe mig, og lave programmet til mig, og kan sagtens forstå det ikke er noget du normalt gør, for så kunne du jo sikkert ikke lave andet, her på forumet  :) så kæmpe stort tak for det, så har jeg noget jeg kan prøve at lære noget af, nu når jeg har set hvordan det skal stilles op  :) for jeg har en masse gode ide'er til udvidelser af programmet og fremtidige projekter, så er det så bare om jeg kan få dem ført ud i livet  :) :)

Og selvfølgelig er der ingen garantier, for du har jo ingen muligheder for at afprøve om det virker i virkeligheden, men hvis det ikke virker, så ved jeg jo hvem jeg skal skrive til, hihi  :)

Mvh Johnny

Go Up