summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRishi-k-s <rishikrishna.sr@gmail.com>2024-07-11 07:28:14 +0530
committerRishi-k-s <rishikrishna.sr@gmail.com>2024-07-11 07:28:14 +0530
commitd1406ca908e27c63e24f72daf10d38f9c1b1004b (patch)
treecfcdce716ae75096369c9c5c590f8d806c6664dc
parent87cf0d7810d206fa7d5d7cb43a6c9c12c5edc884 (diff)
added test codes
-rw-r--r--serial_input_test/serial_input_test.ino73
1 files changed, 73 insertions, 0 deletions
diff --git a/serial_input_test/serial_input_test.ino b/serial_input_test/serial_input_test.ino
new file mode 100644
index 0000000..0984013
--- /dev/null
+++ b/serial_input_test/serial_input_test.ino
@@ -0,0 +1,73 @@
+#include <Wire.h>
+#include <Adafruit_PWMServoDriver.h>
+
+Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
+uint16_t value = 0; // Use uint16_t for a wider range of values
+uint8_t counter = 0;
+
+int homePosCheck =0;
+int i =0;
+
+const int numServos = 6;
+
+void setup() {
+ Serial.begin(9600);
+ Serial.println("------------------------");
+ Serial.println("6 Axis Robot Arm");
+ Serial.println("------------------------");
+
+ Serial.println("Format: sXYYY where X is the servo number (0-2) and YYY is the position (000-180)");
+
+ pwm.begin();
+ pwm.setOscillatorFrequency(27000000);
+ pwm.setPWMFreq(50);
+
+ homePos();
+}
+
+void loop() {
+ if (Serial.available() > 0) {
+ String input = Serial.readStringUntil('\n');
+ Serial.println(input);
+
+ if (input.length() == 5 && input[0] == 's' && isDigit(input[1]) && isDigit(input[2]) && isDigit(input[3]) && isDigit(input[4])) {
+ int servoNum = input[1] - '0';
+ int position = input.substring(2).toInt();
+
+ // if (servoNum >= 0 && servoNum < numServos && position >= 0 && position <= 180) {
+ if (servoNum >= 0 && servoNum < numServos) {
+ // mappedPos = map(position,0,100,)
+ // servos[servoNum].write(position);
+ Serial.print("Servo ");
+ Serial.print(servoNum);
+ Serial.print(" set to position ");
+ Serial.println(position);
+ pwm.setPWM(servoNum, 0, position);
+ } else {
+ Serial.println("Invalid command. Ensure servo number is within range and position is between 000 and 180.");
+ }
+ } else {
+ Serial.println("Invalid command format. Use: sXYYY where X is the servo number (0-2) and YYY is the position (000-180).");
+ }
+ }
+}
+
+
+
+void homePos() {
+
+ for(i=500;i>=395;i--){
+ pwm.setPWM(0, 0, i);
+ delay(5);
+ }
+ delay(100);
+ pwm.setPWM(1, 0, 110);
+ delay(100);
+ pwm.setPWM(2, 0, 250);
+ delay(100);
+ pwm.setPWM(3, 0, 380);
+ delay(100);
+ pwm.setPWM(4, 0, 430);
+ delay(100);
+ pwm.setPWM(5, 0, 490);
+} \ No newline at end of file