Eto mene opet. Ugl bilo mi je nezgodno stavit ovaj kod jer fakat nisam dobar u programiranju a ovo moram napravit, a bas nemam pomoc od nikoga zivoga oko sebe. Ugl evo uspio sam poslati sa mastera na slave neku informaciju. Kao sto vidite ako kuzite ovo moje umjetnicko djelo nastojao sam mu poslati samo naredbu za step da se vrti i po pokusu se on vrti ali ne glatko na serial monitoru dobivam 1 i 0 na strani slavea ali nekad se zna dogoditi da dodu za redom 111101011010101100 da se bitovni ponavljaju sto mi nikako nije u interesu, step motor bi trebao raditi 0 1 0 1.... Ima li neka solucija za to?
Sad je moje pitanje, posto bas nisam siguran jeli ovo uopce treba ici ovako, kako poslati naredbu za direction? Pokusao sam ubacivati kao i za step isti redosljed na masteru ali onda se skroz izblesira slave s sljanjem te dvije informacije.
*Ok homing sam za sada iskljucio jer hocu dobiti samo normalno kretanje slavea kako mu master salje impulse.
Jos jednom isprike ali ako mozete pomoci kako bi bih vam jako jako jako zahvalan ili barem uputiti na neke korisne linkove.
Master:
Kod: Označite sve
// Library
#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
#include <AccelStepper.h>
int x;
// Define the Pins used
#define step_pin 6 // Pin 8 povezan je na step pin TCM2100 drivera
#define dir_pin 5 // Pin 9 povezan je na dir pin TCM2100 drivera
#define pin_pin 10 // Pin 10 HIGH
#define home_switch 9 // Pin 11 povezan je na srednji pin pocetnog prekidaca (MicroSwitch)
RF24 radio(7, 8); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio in the network
const uint16_t lider = 00;
const uint16_t ptica1 = 01;
const uint16_t ptica2 = 02;
const uint16_t ptica3 = 03;
const uint16_t ptica4 = 04;
const unsigned long interval = 0.000001 ; //ms // How often to send data to the other unit
unsigned long last_sent; // When did we last send?
void setup() {
Serial.begin(57600);
SPI.begin();
radio.begin();
network.begin(90, lider); //(channel, node address)
radio.setDataRate(RF24_1MBPS);
pinMode(pin_pin, OUTPUT);
pinMode(dir_pin, OUTPUT);
pinMode(step_pin, OUTPUT);
pinMode(home_switch, INPUT_PULLUP);
}
void loop() {
digitalWrite(dir_pin,LOW); // Postavljanje pina dir na HIGH, kako bi se motor vrtio u jednu stranu
// Slanje 200 impulsa na step pin kako bi motor napravio 200 koraka
for(int x = 0; x < 3200; x++) {
digitalWrite(step_pin,HIGH); //postavljanje HIGH na step pin
delayMicroseconds(100); //postavljanje širine HIGH dijela impulsa na 5 ms (minimum za driver je 1 us)
digitalWrite(step_pin,LOW); //postavljanje LOW na step pin
delayMicroseconds(400); //postavljanje širine LOW dijela impulsa na 5 ms (minimum za driver je 1 us)
Serial.println(x);
unsigned long stepState = digitalRead(x);
RF24NetworkHeader header1(ptica1); // (Address where the data is going)
bool ok2 = network.write(header1, &stepState, sizeof(stepState)); // Send the data
}
delay(400);
}
Slave:
Kod: Označite sve
// Library
#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
#include <AccelStepper.h>
// Pinovi koji se koriste
#define step_pin 6 // Pin 8 povezan je na step pin TCM2100 drivera
#define dir_pin 5 // Pin 9 povezan je na dir pin TCM2100 drivera
#define pin_pin 10 // Pin 10 logicko napajanje 5V
#define home_switch 9 // Pin 11 povezan je na srednji pin pocetnog prekidaca (MicroSwitch)
RF24 radio(7, 8); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio in the network
const uint16_t lider = 00;
const uint16_t ptica1 = 01;
const unsigned long interval = 0.001; //ms // How often to send data to the other unit
unsigned long last_sent; // When did we last send?
void setup() {
Serial.begin(57600);
SPI.begin();
radio.begin();
network.begin(90, ptica1); //(channel, node address)
radio.setDataRate(RF24_1MBPS);
pinMode(pin_pin, OUTPUT);
pinMode(dir_pin, OUTPUT);
pinMode(step_pin, OUTPUT);
pinMode(home_switch, INPUT_PULLUP);
}
void loop() {
network.update();
while ( network.available() ) { // Is there any incoming data?
RF24NetworkHeader header1;
unsigned long stepState;
network.read(header1, &stepState, sizeof(stepState));
digitalWrite(step_pin,!stepState);
Serial.println(stepState);
}
}