Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- Servo myservo;
- int pos = 0;
- int trigger_rpm = 1000;
- int val;
- long last=0;
- int stat=LOW;
- int stat2;
- int counter=0;
- int sens=75;
- int milisecs=500;
- void open_valve(){
- for (pos = 0; pos <= 180; pos += 1) {
- // in steps of 1 degree
- myservo.write(pos);
- delay(15);
- }
- for (pos = 180; pos >= 0; pos -= 1) {
- myservo.write(pos);
- delay(15);
- }
- }
- void setup() {
- Serial.begin(9600);
- pinMode(13,OUTPUT);
- myservo.attach(2);
- }
- void loop() {
- val=analogRead(0);
- if(val<sens)
- stat=LOW;
- else
- stat=HIGH;
- digitalWrite(13,stat);
- if(stat2!=stat){
- counter++;
- stat2=stat;
- }
- if(millis()-last>=milisecs){
- double rpm=((double)counter)/2.0*60000.0/(milisecs);
- Serial.println(rpm);
- if (rpm > trigger_rpm){
- open_valve();
- }
- counter=0;
- last=millis();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement