Components and supplies
RGB Diffused Common Cathode
Relay (generic)
General Purpose Transistor NPN
Arduino Pro Mini 328 - 5V/16MHz
Crystal Liquid Display
Project description
Code
Code
csharp
Sorry for the messy code and the variables between English and Norwegian, new at this. So be pasient please =)
1//Automatic watering ystem// 2 3 4const int trigPin = A3; 5const int echoPin = A2; 6 7int rele = 3; 8int normaldrift = 5; 9int fyller = 8; 10 11long duration; 12int distance; 13 14int releDrift = 0; 15int sensorValue = 0; 16int fullStatus = 0; 17int startfylling = 0; 18int tell =0; 19 20 21 22#include <LiquidCrystal.h> 23LiquidCrystal lcd(12, 11, 6, 9, 10, 7); 24 25 26 27 28void setup() 29{ 30 31 32//Utganger og innganger// 33pinMode (trigPin, OUTPUT); 34pinMode (echoPin, INPUT); 35 36 37pinMode (rele, OUTPUT); 38pinMode (normaldrift,OUTPUT); 39pinMode (fyller , OUTPUT); 40 41 42 43//level sensor 44Serial.begin(9600); 45 46 47 48 lcd.begin(16, 2); 49 // Print a message to the LCD. 50 51digitalWrite(rele,LOW); 52 53} 54 55 56 57 58 59void loop() 60{ 61 62 63 64 65 66 67 // LEVEL SENSOR // 68 //---------------------------------------------// 69 70 // read the analog in value: 71 72 73int avstand = (distance); 74avstand = constrain(avstand, 1, 8); 75avstand = map (avstand,1,8,8,1); 76 77 78 79 80digitalWrite(trigPin, LOW); 81delayMicroseconds(2); 82digitalWrite(trigPin, HIGH); 83delayMicroseconds(10); 84digitalWrite(trigPin, LOW); 85 86 87 88duration = pulseIn(echoPin, HIGH); 89distance = duration * 0.034 / 2; 90 91 92 93int vannlevel = avstand; 94 95 96 97 // print the results to the serial monitor: 98 99Serial.println(releDrift); 100 101 delay(200); 102 103 releDrift = digitalRead(rele); 104 105 106 107 108 109if ( vannlevel < 3 ) 110 {tell++;} 111 112 113if (tell >=111) // 30sekunder 114{ startfylling = 1; 115} 116 117 118 119 120 121 if ( startfylling == 1 && vannlevel < 6) 122 { 123 digitalWrite(rele, HIGH); 124 } 125 126 if ( vannlevel >= 6) 127 { 128 digitalWrite(rele, LOW); 129 tell = 0; 130 startfylling = 0; 131 } 132 133 134 135 136//-------------------------------------------------// 137 138 139 140 141 142 143 144 145// LOW LEVEL // 146// ------------------------------------------------// 147 148 149 150 151//---------------------------------------------------// 152 153 154 155 156 157 158 159 160 161// Forigling (for å sikre tørrkjøring // 162//--------------------------------------------------// 163 164 165 166 167 168//---------------------------------------------------// 169 170 171 172 173 174 175 176 177 178 179// Display // 180//---------------------------------------------------// 181 182 183 184 185if (releDrift == LOW) 186{ 187lcd.clear(); 188lcd.setCursor(4, 0); 189lcd.print("Vannstand"); 190lcd.setCursor(8, 1); 191lcd.print(vannlevel); 192lcd.setCursor(10, 1); 193lcd.print("cm"); 194delay(50); 195lcd.clear(); 196lcd.setCursor(4, 0); 197lcd.print("Vannstand"); 198lcd.setCursor(8, 1); 199lcd.print(vannlevel); 200lcd.setCursor(10, 1); 201lcd.print("cm"); 202digitalWrite (normaldrift, HIGH); 203 204 205 } 206 207 208 209if (releDrift == HIGH) 210{ 211lcd.clear(); 212lcd.setCursor(5, 0); 213lcd.print("Fyller"); 214lcd.setCursor(7, 1); 215lcd.print(vannlevel); 216lcd.setCursor(3, 1); 217lcd.print("~"); 218lcd.setCursor(11, 1); 219lcd.print("~"); 220digitalWrite (normaldrift, LOW); 221digitalWrite (fyller, HIGH); 222delay(50); 223digitalWrite (fyller, LOW); 224delay(50); 225} 226 227 228 229 230 231 232//--------------------------------------------// 233 234 235}
Code
csharp
Sorry for the messy code and the variables between English and Norwegian, new at this. So be pasient please =)
1//Automatic watering ystem// 2 3 4const int trigPin = A3; 5const int echoPin = A2; 6 7int rele = 3; 8int normaldrift = 5; 9int fyller = 8; 10 11long duration; 12int distance; 13 14int releDrift = 0; 15int sensorValue = 0; 16int fullStatus = 0; 17int startfylling = 0; 18int tell =0; 19 20 21 22#include <LiquidCrystal.h> 23LiquidCrystal lcd(12, 11, 6, 9, 10, 7); 24 25 26 27 28void setup() 29{ 30 31 32//Utganger og innganger// 33pinMode (trigPin, OUTPUT); 34pinMode (echoPin, INPUT); 35 36 37pinMode (rele, OUTPUT); 38pinMode (normaldrift,OUTPUT); 39pinMode (fyller , OUTPUT); 40 41 42 43//level sensor 44Serial.begin(9600); 45 46 47 48 lcd.begin(16, 2); 49 // Print a message to the LCD. 50 51digitalWrite(rele,LOW); 52 53} 54 55 56 57 58 59void loop() 60{ 61 62 63 64 65 66 67 // LEVEL SENSOR // 68 //---------------------------------------------// 69 70 // read the analog in value: 71 72 73int avstand = (distance); 74avstand = constrain(avstand, 1, 8); 75avstand = map (avstand,1,8,8,1); 76 77 78 79 80digitalWrite(trigPin, LOW); 81delayMicroseconds(2); 82digitalWrite(trigPin, HIGH); 83delayMicroseconds(10); 84digitalWrite(trigPin, LOW); 85 86 87 88duration = pulseIn(echoPin, HIGH); 89distance = duration * 0.034 / 2; 90 91 92 93int vannlevel = avstand; 94 95 96 97 // print the results to the serial monitor: 98 99Serial.println(releDrift); 100 101 delay(200); 102 103 releDrift = digitalRead(rele); 104 105 106 107 108 109if ( vannlevel < 3 ) 110 {tell++;} 111 112 113if (tell >=111) // 30sekunder 114{ startfylling = 1; 115} 116 117 118 119 120 121 if ( startfylling == 1 && vannlevel < 6) 122 { 123 digitalWrite(rele, HIGH); 124 } 125 126 if ( vannlevel >= 6) 127 { 128 digitalWrite(rele, LOW); 129 tell = 0; 130 startfylling = 0; 131 } 132 133 134 135 136//-------------------------------------------------// 137 138 139 140 141 142 143 144 145// LOW LEVEL // 146// ------------------------------------------------// 147 148 149 150 151//---------------------------------------------------// 152 153 154 155 156 157 158 159 160 161// Forigling (for å sikre tørrkjøring // 162//--------------------------------------------------// 163 164 165 166 167 168//---------------------------------------------------// 169 170 171 172 173 174 175 176 177 178 179// Display // 180//---------------------------------------------------// 181 182 183 184 185if (releDrift == LOW) 186{ 187lcd.clear(); 188lcd.setCursor(4, 0); 189lcd.print("Vannstand"); 190lcd.setCursor(8, 1); 191lcd.print(vannlevel); 192lcd.setCursor(10, 1); 193lcd.print("cm"); 194delay(50); 195lcd.clear(); 196lcd.setCursor(4, 0); 197lcd.print("Vannstand"); 198lcd.setCursor(8, 1); 199lcd.print(vannlevel); 200lcd.setCursor(10, 1); 201lcd.print("cm"); 202digitalWrite (normaldrift, HIGH); 203 204 205 } 206 207 208 209if (releDrift == HIGH) 210{ 211lcd.clear(); 212lcd.setCursor(5, 0); 213lcd.print("Fyller"); 214lcd.setCursor(7, 1); 215lcd.print(vannlevel); 216lcd.setCursor(3, 1); 217lcd.print("~"); 218lcd.setCursor(11, 1); 219lcd.print("~"); 220digitalWrite (normaldrift, LOW); 221digitalWrite (fyller, HIGH); 222delay(50); 223digitalWrite (fyller, LOW); 224delay(50); 225} 226 227 228 229 230 231 232//--------------------------------------------// 233 234 235}
Downloadable files
Arduino pro mini
This is the microcontroller i used
Arduino pro mini
Comments
Only logged in users can leave comments
SindreKragsrud
0 Followers
•0 Projects
Table of contents
Intro
19
0