The Idea: I need to control my servo with 90 dgree by using the Arduino, and i need to adjust the speed
I used Eagle to design my board
you can learn more about Eagle here
and I used Hello echo, after I modified it
Code
// include the library code: //#include#include LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display #include //const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; //LiquidCrystal lcd(rs, en, d4, d5, d6, d7); Servo myservo; // create servo object to control a servo int pos = 0; // analog pin used to connect the potentiometer int val=0; // variable to read the value from the analog pin int potpin = 0; int a=0; int value=0; int T=0; int dn=0; int val2=0; int hold=0; void setup() { lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); myservo.attach(9); // attaches the servo on pin 9 to the servo object // set up the LCD's number of columns and rows: //lcd.begin(16, 2); Serial.begin(9600); // Print a message to the LCD. lcd.print("Breathing"); T=millis(); } void loop() { val=analogRead(A0); val = map(val, 0, 1023, 0, 25); value=val+9; Serial.println(value); lcd.setCursor(0, 1); lcd.print(value); val2=analogRead(A1); hold= map(val2, 0, 1023, 0, 500); lcd.setCursor(11, 0); lcd.print("Hold"); lcd.setCursor(12, 1); lcd.print(hold); INH(); delay(hold/2); EXH(); delay(hold); lcd.setCursor(3, 1); lcd.print(millis() / 1000); dn=((millis()-T)/1000); if(dn>=60){ a=0; millis(); T=millis(); dn=0; }else{ a++; lcd.setCursor(7, 1); lcd.print(a);} } void INH(){ for (pos = 0; pos <= 90; pos += 1) { // goes from 0 degrees to 90 degrees // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(val-4); // waits (val value)for the servo to reach the position } } void EXH(){ for (pos = 90; pos >= 0; pos -= 1) { // goes from 90 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable 'pos' delay(val+5); // waits (val value)for the servo to reach the position // lcd.setCursor(0, 1); // lcd.print(pos); } }
all documents here