#include <Stepper.h>
#include <WiFi.h>
#include <ThingSpeak.h>
char ssid[] = "Wokwi-GUEST";
char pass[] ="";
WifiClient client;
unsigned long mychannelnumber = 2644310;
const char * myWriteAPIKey = "GTF4VS5YVR8SAOD6";
int LBMotorHoriPin = 33, LBMotorHoriValue;
int LBMotorStepPin = 14;
int LBMotorDirectionPin = 27 ;
int LBMotorSteps=10, LBMotorDegree=0, LBMotorMaxDegree=30;
Stepper LBMotor(LBMotorSteps, LBMotorStepPin, LBMotorDirectionPin);
int UBMotorVertpin = 32, UBMotorVertValue;
int UBMotorStepPin=13;
int UBMotorDirectionPin = 12;
int UBMotorSteps=5, UBMotordegree=0, UBMotorMaxDegree=10;
Stepper UBMotor(UBMotorSteps, UBMotorStepPin, UBMotorDirectionPin);
int baseMotorHoriPin= 34, baseMotorHoriValue;
int baseMotorStepPin = 2;
int baseMotorDirectionPin = 4;
int beseMotorSteps=15, baseMotorDegreee=0, baseMotorDegree=90;
stepper baseMotor(baseMotorSteps, baseMotorStepPin, baseMotorDirectionPin0);
void setup() {
Serial.begin(115200);
Wifi.mode(WIFI_STA);
ThingsSpeak.Begin(client);
LBMotor.setSpeed(100);
UBMotor.setSpeed(100);
baseMotor.setspeed(100);
pinMode(LBMotorHoriPin, INPUT);
pinMode(LBMotorStepPin, OUTPUT);
pinMode(LBMotorDirectionPin, OUTPUT);
pinMode(UBMotorDirectionPin, INPUT);
pinMode(UBMotorStepPin, OUTPUT);
pinMode(UBMotorDirectionPin, OUTPUT);
pinMode(baseMotorHoriPin, INPUT);
pinMode(baseMotorStepPin, OUTPUT);
pinMode(baseMotorDirectionPin, OUTPUT);
}
void loop() {
connectToCloud();
LBMotorHoriValue= map(analogRead(LBMotorHoriPin),0, 4095, -1, 1);
LBMotorDegree= rotateMotor(LBMotor, LBMotorHoriValue, LBMotorSteps,LBMotorDegree, LBMotorMaxDegree);
Serial.print(LBMotorDegree);
Serial.print(",");
UBMotorVertValue = map(analogRead(UBMotorVertPin), 0, 4095, -1,1)
UBMotorDegree = rotateMotor(UBMotor,UBMotorVertValue, UBMotorSteps, UBMotorDegree, UBMotorMaxDegree)
Serial.print(UBMotorDegree);
Serial.print(",");
baseMOtorHoriValue = map(analogRead(baseMotorHoripin),0, 4095,1,-1,);
baseMotorDegree = rotateMotor(baseMotor, baseMotorHoriValue, baseMotorSteps, BaseMotorMaxDegree);
Serial.print(baseMotorDegree);
Serial.println(",");
writeDAta();
}
int rotateMotor(Stepper motor, int pinValue, int steps, int degree, int maxDegree){
if(pinValue ==1) {
motor.step(steps);
if(degree < maxDegree)
degree += steps;
}
else if(pinValue == -1) {
motor.step(-steps);
if (degree > 0)
degree -= steps;
}
void connectToCloud(){
if(wifi.status() != WL_CONNECTED) {
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED) {
wifi.begin(ssid, pass);
for(int i=0;i<5,i++) {
Serial.print(".");
delay(1000);
}
}
Serial.println("\nConnected.");
}
}
int statusCode;
void WriteData(){
ThingsSpeak.setField(1, baseMotorDegree);
ThingsSpeak.setField(2, LBMotorDegree);
ThingsSpeak.SetFiels(3, UBMotorDegree);
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if(statusCode == 200)
Serial.println("Channel update successful.");
else
Serial.println("problem Wrinting data. HTTP errror code :" + String(statusCode));
delay(1000);
}