?How to use Capacitive Touch instead of button

I have this code , and i went to change from using button to 3 Capacitive Touch sensor with these options ;
1st Switch:

  • Gives an option of 1tsp scale (5ml)

2nd Switch:

  • Gives an option of 1tbsp scale (15ml)

3rd Switch: (Cup Scale)
This have 3 options inside of it,

  • 1/4 Cup (62.5 ml)
  • 1/2 Cup (125 ml)
  • 1 Cup (250 ml)

how can I build it ?




#include <LiquidCrystal_I2C.h> 
#include <Servo.h>
Servo servo;
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);


int z = 1;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int filled_led = 5;
int sensor = 6;
// servo = 7
int pump = 8;
int mode = 9;
int buzzer = 10;
int start = 11;


 
void setup() 
{

  // initialize the LCD
  lcd.begin();
  // Turn on the blacklight and print a message.
 lcd.backlight();
 tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
  
   lcd.setCursor(0,0); // column, row
  lcd.print("     Welcome    ");
  lcd.setCursor(0,1); // column, row 
  lcd.print(" Experiment UAE ");
  delay(3500);
  
  lcd.setCursor(0,0); // column, row
  lcd.print(" Pow_Fill ver.1 ");
  lcd.setCursor(0,1); // column, row
  lcd.print("      2020      ");
  delay(2500);
   if(digitalRead(sensor) == HIGH)
 tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
                                                                                                                                                                       
   
 lcd.clear();
 pinMode(start, INPUT_PULLUP);
 pinMode (led1,OUTPUT);
 pinMode (led2,OUTPUT);
 pinMode (led3,OUTPUT);
  pinMode(pump, OUTPUT);
 pinMode (filled_led,OUTPUT);
 pinMode (buzzer,OUTPUT);
 pinMode (sensor, INPUT);
 servo.attach(7);
 servo.write(180);

}
void loop()
{

   int button = digitalRead(mode);
  
  if (button == HIGH)
  {
 tone(buzzer, 500);
  delay(150);
  noTone(buzzer);
  {
    if(z<3)
    z ++;
    else
    z=1;
  }
  }
////////////////////////////////////////////////MODE 1
  
  if 
  (z==1)
  
  {
  digitalWrite (led2,LOW);
  digitalWrite (led3,LOW);
  digitalWrite (led1,HIGH);
   lcd.setCursor(0,0); // column, row
  lcd.print(" PACK 1 #  25Gr"); 
  }
  while(digitalRead(start) == LOW)
{
  if(digitalRead(sensor) == LOW)
  {
      lcd.setCursor(0,1); // column, row
  lcd.print("  Press Start   ");
  }
 if(digitalRead(sensor) == HIGH)
  {
   lcd.setCursor(0,1); // column, row
  lcd.print("   Place Bag    ");
  
  }

  
  if (digitalRead (button) == HIGH)
  break;
}
  ///////////////////////////////////////////////MODE 2
  
  if 
  (z==2)
  {
  digitalWrite (led2,HIGH);
  digitalWrite (led3,LOW);
  digitalWrite (led1,LOW);
   lcd.setCursor(0,0); // column, row
  lcd.print(" PACK 2 #  50Gr"); 
  }
  while(digitalRead(start) == LOW)
{
  if(digitalRead(sensor) == LOW)
  {
       lcd.setCursor(0,1); // column, row
  lcd.print("  Press Start   ");
  }
 if(digitalRead(sensor) == HIGH)
  {
   lcd.setCursor(0,1); // column, row
  lcd.print("   Place Bag    ");
  }

  
  if (digitalRead (button) == HIGH)
  break;
}

//////////////////////////////////////////////////MODE 3
  
   if 
  (z==3
    
  )
  {
  digitalWrite (led2,LOW);
  digitalWrite (led3,HIGH);
  digitalWrite (led1,LOW);
   lcd.setCursor(0,0); // column, row
  lcd.print(" PACK 3 #  75Gr"); 
  }
  while(digitalRead(start) == LOW)
{
  if(digitalRead(sensor) == LOW)
  {
     lcd.setCursor(0,1); // column, row
  lcd.print("  Press Start   ");
  }
 if(digitalRead(sensor) == HIGH)
  {
   lcd.setCursor(0,1); // column, row
  lcd.print("   Place Bag    ");
  
  }

  
  if (digitalRead (button) == HIGH)
  break;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
    delay(200);


     if(digitalRead(start) == HIGH && z==1 && digitalRead(sensor) == LOW ) 
{
 tone(buzzer,500);
  delay(100);
  noTone(buzzer);
   lcd.setCursor(0,1); // column, row
  lcd.print("   Filling... ");
  digitalWrite (pump,HIGH);
   //<<<=========================================<<< To Calibrate MODE 1, Change this Value
 servo.write(30);
 delay(1000);
  digitalWrite (pump,LOW);
  servo.write(180);

 
  
  lcd.setCursor(0,1); // column, row
  lcd.print("Packing Complete");
  
  
  digitalWrite (filled_led,HIGH);
  delay(400);
  tone(buzzer, 500);
  delay(300);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(150);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(300);
  noTone(buzzer);
  delay(1000);
  digitalWrite (filled_led,LOW);
  
  while(digitalRead(sensor) == LOW) 
  {
    if(digitalRead(start) == HIGH)
    {
  lcd.setCursor(0,1); // column, row
  lcd.print(" Place New Bag  ");
   tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
  
    }
if(digitalRead(mode) == HIGH)
    {
  lcd.setCursor(0,1); // column, row
  lcd.print("   Remove BAG   ");
   tone(buzzer, 500);
  delay(200);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(200);
  noTone(buzzer);
  
    }
    
 if(digitalRead(sensor) == HIGH)
 break;
}
 delay(200);
}
if(digitalRead(start) == HIGH && z==1 && digitalRead(sensor) == HIGH ) 

{
   lcd.setCursor(0,1); // column, row
  lcd.print(" Error! No BAG ");
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);

}

 
if(digitalRead(start) == HIGH && z==1 && digitalRead(sensor) == HIGH ) 

{
   lcd.setCursor(0,1); // column, row
  lcd.print("   Place Bag    ");
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);

}



     if(digitalRead(start) == HIGH && z==2 && digitalRead(sensor) == LOW ) 
{
 tone(buzzer,500);
  delay(100);
  noTone(buzzer);
   lcd.setCursor(0,1); // column, row
  lcd.print("   Filling... ");
  digitalWrite (pump,HIGH);
   //<<<=========================================<<< To Calibrate MODE 1, Change this Value
 servo.write(30);
 delay(2000);
  digitalWrite (pump,LOW);
  servo.write(180);


  
  lcd.setCursor(0,1); // column, row
  lcd.print("Packing Complete");
  
  
  digitalWrite (filled_led,HIGH);
  delay(400);
  tone(buzzer, 500);
  delay(300);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(150);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(300);
  noTone(buzzer);
  delay(1000);
  digitalWrite (filled_led,LOW);
  
  while(digitalRead(sensor) == LOW) 
  {
    if(digitalRead(start) == HIGH)
    {
  lcd.setCursor(0,1); // column, row
  lcd.print(" Place New Bag  ");
   tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
  
    }
if(digitalRead(mode) == HIGH)
    {
  lcd.setCursor(0,1); // column, row
  lcd.print("   Remove Bag   ");
   tone(buzzer, 500);
  delay(200);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(200);
  noTone(buzzer);
  
    }
    
 if(digitalRead(sensor) == HIGH)
 break;
}
 delay(200);
}
if(digitalRead(start) == HIGH && z==2 && digitalRead(sensor) == HIGH ) 

{
   lcd.setCursor(0,1); // column, row
  lcd.print(" Error! No Bag ");
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);

}

 
if(digitalRead(start) == HIGH && z==2 && digitalRead(sensor) == HIGH ) 

{
   lcd.setCursor(0,1); // column, row
  lcd.print("   Place Bag    ");
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);

}



     


     if(digitalRead(start) == HIGH && z==3 && digitalRead(sensor) == LOW ) 
{
tone(buzzer,500);
  delay(100);
  noTone(buzzer);
   lcd.setCursor(0,1); // column, row
  lcd.print("   Filling... ");
  digitalWrite (pump,HIGH);
   //<<<=========================================<<< To Calibrate MODE 1, Change this Value
 servo.write(30);
 delay(3000);
  digitalWrite (pump,LOW);
  servo.write(180);


  
  lcd.setCursor(0,1); // column, row
  lcd.print("Packing Complete");
 
  
  digitalWrite (filled_led,HIGH);
  delay(400);
  tone(buzzer, 500);
  delay(300);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(150);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(300);
  noTone(buzzer);
  delay(1000);
  digitalWrite (filled_led,LOW);
  
  while(digitalRead(sensor) == LOW) 
  {
    if(digitalRead(start) == HIGH)
    {
  lcd.setCursor(0,1); // column, row
  lcd.print(" Place New Bag  ");
   tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(100);
  noTone(buzzer);
  
    }
if(digitalRead(mode) == HIGH)
    {
  lcd.setCursor(0,1); // column, row
  lcd.print("   Remove Bag   ");
   tone(buzzer, 500);
  delay(200);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500);
  delay(200);
  noTone(buzzer);
  
    }
    
 if(digitalRead(sensor) == HIGH)
 break;
}
 delay(200);
}
if(digitalRead(start) == HIGH && z==3 && digitalRead(sensor) == HIGH ) 

{
   lcd.setCursor(0,1); // column, row
  lcd.print(" Error! No Bag ");
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);

}

 
if(digitalRead(start) == HIGH && z==3 && digitalRead(sensor) == HIGH ) 

{
   lcd.setCursor(0,1); // column, row
  lcd.print("   Place Bag    ");
   tone(buzzer, 500);
  delay(1000);
  noTone(buzzer);
  delay(30);
   tone(buzzer, 500 );
  delay(1000);
  noTone(buzzer);

}
}

Please do not cross post your questions.

This wastes volunteer time and efforts.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.