Hello and sorry if I offended someone in this forum with my question. I was just looking for a little help from people who know about this topic, I did not want a novel to be formed because of this. Thanks.
By the way i was reading my code and i make the stepper motor to go backward. Now im trying to get it to stop when reach the position 0 or 180 degrees. Thanks to the help of those who gave constructive criticism.
Here my master code:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Stepper.h>
#define led 7
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00005", "00006"};
//boolean buttonState = 0; BUTTON
long rangeState;//SENSOR
int sensorLectur;
//long distance;
// Define Constants of the Stepper
// Number of steps per internal motor revolution
const float STEPS_PER_REV = 32;
// Amount of Gear Reduction
const float GEAR_RED = 64;
// Number of steps per geared output rotation
const float STEPS_PER_OUT_REV = STEPS_PER_REV * GEAR_RED;//2048 == 360
// Number of Steps Required
int StepsRequired = STEPS_PER_OUT_REV / 2; //1024 == 180
//#define STEPS 180
// Create Instance of Stepper Class
// Specify Pins used for motor coils
// The pins used are 2,3,5,6
// Connected to ULN2003 Motor Driver In1, In2, In3, In4
// Pins entered in sequence 1-3-2-4 for proper step sequencing
int limp = constrain(StepsRequired,1023,0);
//int steps = map(StepsRequired,0,1023,180,0);
//int steps = map(limp,0,1023,180,0);
//Stepper steppermotor(limp,2, 5, 3, 6);
Stepper steppermotor(StepsRequired,2, 5, 3, 6);
//Stepper steppermotor(STEPS_PER_REV,2, 5, 3, 6);
//Stepper steppermotor(STEPS,2, 5, 3, 6);
void setup() {
pinMode(7, OUTPUT);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00005
radio.openReadingPipe(1, addresses[0]); // 00006
radio.setPALevel(RF24_PA_MIN);
}
void loop() {
delay(5);
Serial.begin(9600);
radio.stopListening();
//Serial.println("NO LISTENING");
int potValue = analogRead(A0);
int angleValue = map(potValue, 0, 1023, 0, 180);//0 a 180
radio.write(&angleValue, sizeof(angleValue));
//Serial.println(angleValue);
//Serial.println("WRITTEN MESSAGE");
delay(5);
////////////////MODIFY HERE FORWARD ---> WHAT THIS ARDUINO HEARS////////////////////
radio.startListening();
//Serial.println("LISTENING");
if(!radio.available()){
//Serial.println("NOT AVAILABLE");
}
//radio.read(&rangeState, sizeof(rangeState));
//int sensorBackward = constrain(sensorLectur,30,2);
//Serial.print(sensorLectur);
//Serial.println("cm");
delay(5);
//steppermotor.step(StepsRequired);
//Serial.println(steps);
if(radio.available()){
//int distance = 0;
//radio.read(&distance, sizeof(distance));
radio.read(&sensorLectur, sizeof(sensorLectur));
int sensorFoward = constrain(sensorLectur,0,30);
//int sensorFoward = constrain(distance,0,30);
Serial.println(sensorFoward);
if(sensorFoward < 30){
steppermotor.setSpeed(sensorLectur);
int sf = 30 - sensorFoward;
int walk = sf * 34;
steppermotor.step(walk);
}
if(sensorFoward > 1){
steppermotor.setSpeed(sensorLectur);
int sf = 30 - sensorFoward;
int walk = sf * 34;
steppermotor.step(-walk);
}
//Serial.println(distance);
//Serial.println(StepsRequired);
delay(5);
}
}
Slave Code:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
#include "SR04.h"// for Sensor
//BUTTON
//#define button 4
//LED
#define led 4
#define TRIG_PIN 6
#define ECHO_PIN 7
SR04 sr04 = SR04(ECHO_PIN, TRIG_PIN);
int sensorLectur;
long duration;
float distance;
//WIFI
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00005", "00006"};
//SERVO
Servo myServo;
//boolean buttonState = 0; BUTTON
long rangeState; //SENSOR
void setup() {
//pinMode(button, INPUT); BUTTON
pinMode(TRIG_PIN,OUTPUT);//------->TESTING
pinMode(ECHO_PIN,INPUT);//-------->TESTING
pinMode(4,OUTPUT);
myServo.attach(5);
radio.begin();
radio.openWritingPipe(addresses[0]); // 00006
radio.openReadingPipe(1, addresses[1]); // 00005
radio.setPALevel(RF24_PA_MIN);
}
void loop() {
delay(5);
radio.startListening();
Serial.begin(9600);
//Serial.println("LISTENING");
if(radio.available()){
if (radio.available()){
int angleV = 0;
radio.read(&angleV, sizeof(angleV));
//Serial.println(angleV);
myServo.write(angleV);
if( angleV < 90 || angleV > 90){
digitalWrite(led,HIGH);
//Serial.println("READING_ANALOG");
} else {
digitalWrite(led,LOW);
}
delay(5);
radio.stopListening();
Serial.begin(9600);
sensorLectur = sr04.Distance();
//int senconst = constrain(sensorLectur,2,30);
//int distance = map(senconst,2,30,180,12);
//Serial.print(sensorLectur);
//Serial.println("cm");
//delay(300);
//rangeState = analogRead(sensorLectur);
//Serial.println(rangeState);
//radio.write(&rangeState, sizeof(rangeState));
radio.write(&sensorLectur, sizeof(sensorLectur));
//radio.write(&distance, sizeof(distance));
//radio.write(&readSensor(), sizeof(readSensor()));
//Serial.println(distance);
//Serial.println("cm");
//radio.write(&distance, sizeof(distance));
//Serial.println(distance);
//CODE FOR BUTTON
//buttonState = digitalRead(button);
//radio.write(&buttonState, sizeof(buttonState));
//END CODE BUTTON
}
}
}