Sallama çay makinesi projemiz seçtiğiniz çay türüne göre özel bekletme süresinde çayınızı bardağınıza daldırarak demlemesini sağlar , süre bittiğinde poşet çayınızı bardaktan kaldırarak azı bir tat vermemesini sağlar.Güzel bir siyah çay demlemesi için ortalama 1.5 dk bardakta durması gerekir.Bu süreyi sizin yerinize cihaz otomatik yapar.
Malzemeler
- Arduino UNO
- 16×2 LCD Ekran I2C
- Servo Motor
- Buzzer
- Potansiyometre
- Led
- Button
- 3D Baskı Parçalar ( Çay Makinesi )
Projenin 3 adet kod dosyası vardır , ürünü satın aldıktan sonra dosyayı indirebilirsiniz caymakinesi.ino dosyasını arduino programından open komunu ile açın aksi halde kodda hata alırsınız.
// Proje Hocam - Cay Makinesi
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x3f, 16, 2);
Servo servoMotor;
int screenLED = 6;
int servoPin = 7;
int startButton = 8;
int buzzer = 9;
int teaPot = A0;
boolean diagnosticBit = LOW;
int timer = 0;
int oldTimer = 0;
boolean inProcess = LOW;
int servoHighPosition = 120;
int servoMidPosition = 100;
int servoLowPosition = 70;
int servoSpeed = 35;
long idleTime = 0;
void setup() {
pinMode(screenLED, OUTPUT);
pinMode(servoPin, OUTPUT);
pinMode(startButton, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
servoMotor.attach(servoPin);
servoMotor.write(servoHighPosition);
if (!diagnosticBit){
tone(buzzer, 1000, 200);
}
Serial.println("Sistem Tamam");
lcd.begin();
lcd.backlight();
lcd.print("Cay Makinesi");
lcd.setCursor(0, 1);
lcd.print("Proje Hocam");
fadeLightOn(screenLED);
clearScreen();
if (!diagnosticBit){
tone(buzzer, 1000, 200);
}
updateIdleTime();
}
void loop() {
if (idleTime < millis()){
fadeLightOff(screenLED);
idleTime = 2147483647;
}
if (diagnosticBit && millis()%1000 == 0){
Serial.println(idleTime);
Serial.println(millis());
Serial.println("");
}
if (millis() % 30 == 0){
oldTimer = timer;
timer = rawToTime(analogRead(teaPot));
if (oldTimer != timer){
lcd.setCursor(0, 0);
lcd.print(teaName(rawToTime(analogRead(teaPot))));
lcd.setCursor(3, 1);
lcd.print(timeString(0));
lcd.setCursor(8, 1);
lcd.print(timeString(timer));
delay(300);
updateIdleTime();
}
}
if (!digitalRead(startButton)){
inProcess = HIGH;
Serial.println("Start Button is pressed");
// Move servo to low position to dunk tea (0-179)
servoMotor.write(servoLowPosition);
updateIdleTime();
delay(300);
}
if (inProcess == HIGH){
Serial.println("inProcess is HIGH");
for (int i = 0; i < timer; i++){
lcd.setCursor(3, 1);
lcd.print(timeString(i));
delay(1000);
}
for (int i = servoLowPosition; i < servoHighPosition; i++){
servoMotor.write(i);
delay(servoSpeed);
}
for (int i = 0; i < 3; i ++){
servoMotor.write(servoHighPosition);
delay(200);
if (!diagnosticBit){
tone(buzzer, 1000, 100);
}
servoMotor.write(servoMidPosition);
delay(servoLowPosition);
}
servoMotor.write(servoHighPosition);
updateIdleTime();
inProcess = LOW;
}
}
hande –
Bu proje kurulumu geliyor , proje ile birlikte kodlar gönderiliyormu
Proje Hocam –
proje kurulu olarak gönderiliyor , projeye kupa bardak dahil değildir. Kodları sipariş verdiğinizde sisteminizden indirebilirsiniz.