there are a few similar questions like this on here, but I can't manage to get it working/ find a solution.
I'm used to java, in which I can construct and call classes fairly easily, but I can't get anything in arduino to work. After a dozen tip's I've constructed it like so:
#include <Servo.h>
Servo CameraServo1;
Servo CameraServo2;
int CameraServo1Pin = 2;
int CameraServo2Pin = 3;
int CameraAngle;
int CameraAngle2;
char incomingCharacter = 0; // Setting up a character variable
void setup() {
Serial.begin(9600);
CameraServo1.attach(CameraServo1Pin);
CameraServo2.attach(CameraServo2Pin);
//Initialize camera by setting the servo's to the default 90 degree position.
init.camera();
}
void loop() {
// Check if something is being received
if (Serial.available() > 0)
{
// read the incoming character:
incomingCharacter = Serial.read();
Serial.println("OK!"); // Send OK back to laptop
switch (incomingCharacter)
{
case 'w': // Case block
ServoControl.forward();
break;
case 's': // Case block
ServoControl.reverse();
break;
}
}
}
class init
{
public:
camera();
};
init::camera()
{
ServoControl.CameraAngle = 90;
ServoControl.CameraAngle2 = 90;
CameraServo1.write(90);
CameraServo2.write(90);
}
class ServoControl
{
public forward();
public reverse();
};
ServoControl::reverse()
{
CameraAngle = CameraAngle - 5;
CameraAngle2 = CameraAngle2 - 5;
CameraServo1.write(CameraAngle);
CameraServo2.write(CameraAngle2);
}
ServoControl::forward()
{
CameraAngle = CameraAngle + 5;
CameraAngle2 = CameraAngle2 + 5;
CameraServo1.write(CameraAngle);
CameraServo2.write(CameraAngle2);
}
But I can't get it to call the function from the class (for example void camera from class init) without it giving me an error that camera in init is a void. I don't really understand how classes here work and why a void wouldn't go in a class. :/