Do It Yourself


Εγγραφείτε στο φόρουμ, είναι εύκολο και γρήγορο

Do It Yourself
Do It Yourself
Θέλετε να αντιδράσετε στο μήνυμα; Φτιάξτε έναν λογαριασμό και συνδεθείτε για να συνεχίσετε.

arduino project

5 απαντήσεις

Σελίδα 3 από 3 Επιστροφή  1, 2, 3

Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Δευ Μαρ 26, 2018 6:12 pm

-nikos- έγραψε:
και ο ποιο δυσκολος ειναι τελικα να βρουμε-φτιαξουμε κωδικα με 3 αξωνες σε ενα αρντουινο....

Ακουστε... τα δυσκολα ειναι για τους καλους αλλα.....τα ευκολα ειναι για τους καλυτερους brushless - arduino project - Σελίδα 3 3350164617.


Τελικά είμαι και καλός και...καλύτερος !!!!!

εφτιαξα τον κωδικα με φουλ ευαισθησια τριών αξόνων....  brushless - arduino project - Σελίδα 3 1764762785

και οχι μονο για σερβο ή esc αλλα και για οδήγηση απλων μοτέρ... τρεις μερες παιδευόμουν... brushless - arduino project - Σελίδα 3 3488693379

στην φώτο δημοσιεύω μόνο το void loop ...

brushless - arduino project - Σελίδα 3 Oide10

δεν δημοσιευω ολοκληρο τον κωδικα γιατι ετοιμαζω βιντεο σχετικο με το γυροσκοπιο αφενος και 
αφετερω μαλλον θα βαλω στα σχεδια και την κατασκευη drone με arduino,,

ομως μια μικρη περιληψη θα ειναι χρησιμη στους αναγνωστες... 


φωτο κυκλωματος=

brushless - arduino project - Σελίδα 3 Wp_20259


τον κωδικα τον ανεπτηξα σε οδηγηση pwm και οχι σε servo driver γιατι το pwm μπορουμε ευκολα να το μετατρεψουμε σε οδηγηση 6 αξωνων απλων μοτερ αλλα και σε 6 servo driver για 3κοπτερο ή 6κοπτερο...

μολις ολοκληρωσω το κυκλωμα θα γυρισω και το βιντεο 

Στοχος γυροσκοπικης σταθεροποιησης επιτευχθει !!! brushless - arduino project - Σελίδα 3 4232938862

επομενος στοχος η gps οδηγηση. Basketball

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Σαβ Απρ 21, 2018 8:13 pm

-nikos- έγραψε:


ο κώδικας δεν θα δημοσιευτεί  brushless - arduino project - Σελίδα 3 3003132581

μπορειτε να αρχισετε τους πειραματισμους με αυτο το βιντεο=



στο οποίο δινει και κώδικα και περιγραφη,, 

δεν ειναι ο κώδικας που χρησιμοποιω αλλά ειναι μια καλη αρχη.

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Παρ Μάης 18, 2018 1:27 pm

ενα καινουριο προγραμμα που σου.....''φτιαχνει τον κώδικα'' και 
φαινεται αρκετα ενδιαφερον 

ειναι το https://www.circuito.io/app?components=9442,10334,11022,488167

ειναι δωρεαν και εχει μεγαλη γκαμα εξαρτηματων.....

απλα ''τραβατε'' το εξαρτημα μεσα στο κύκλωμα και 
αυτο αυτόματα φτιαχνει τις συνδέσεις και παράγει τον κώδικα....


θα το βρειτε πολυ ενδιαφερον  brushless - arduino project - Σελίδα 3 196810035


θα το βρειτε εδω = https://www.circuito.io/app?components=512,11021

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Τετ Δεκ 11, 2019 12:36 pm

-nikos- έγραψε:


ετοιμο και το βιντεο  brushless - arduino project - Σελίδα 3 196810035=




ο κώδικας δεν θα δημοσιευτεί  brushless - arduino project - Σελίδα 3 3003132581

μετα απο πολλες ιντερνετικες απαιτησεις και απο το παραπανω βιντεο και απο την κατασκευη ηλεκτρονικης αγκυρας με gps που μπορειτε να την δειτε εδω= https://doityourself123.forumgreek.com/t397-topic

δημοσιευω τον κωδικα 

brushless - arduino project - Σελίδα 3 Sieee_10
brushless - arduino project - Σελίδα 3 Sieee_12
brushless - arduino project - Σελίδα 3 Sieee_11

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Σαβ Δεκ 14, 2019 9:37 am

-nikos- έγραψε:

φυσικα ο κωδικας θα ειναι free  afro



Οπως  υποσχεθηκα......!!!! brushless - arduino project - Σελίδα 3 794374389


μετετρεψα τον κωδικα για λεντ σε κωδικα για ινβερτερ καθαρου ιμητονου !!!!!! με αναδραση και με τα ουλα του...

ο κωδικας=

int sensorValue;

void setup()
{
  pinMode(5, OUTPUT);//MOSFET DRIVER 1
  pinMode(6, OUTPUT);//MOSFET DRIVER 2
  //FEEDBACK ON PIN A4
}

void loop()
{
  analogWrite(6,HIGH);
  analogWrite(5,LOW);
  sensorValue = analogRead(4);//FEEDBACK ON PIN A4 
  analogWrite(6, sensorValue / 4); 
//analogWrite(37, 1023 - sensorValue);
  delay(9); //The delay can be change to get the desired frequency
  analogWrite(6,LOW);
  analogWrite(5,LOW);
  delay(1);
  analogWrite(6,LOW);
  analogWrite(5,HIGH);
  sensorValue = analogRead(4);//FEEDBACK ON PIN A4 
  analogWrite(5, sensorValue / 4); 
//analogWrite(37, 1023 - sensorValue);
  delay(9); //The delay can be change to get the desired frequency
  analogWrite(6,LOW);
  analogWrite(5,LOW);
  delay(1);
  }

---------------------------------------------

ετσι,,, με αγαπη σε ολους...

για ενα φραχτη ηλεκτροπληξιας για φραξιμο........σαλιγκαριων 
τροποποιησα ξανα 
τον παραπάνω κώδικα ωστε να οδηγει μια ηλεκτρονική απο μηχανάκι...

ο κωδικας=

brushless - arduino project - Σελίδα 3 Oa__aa10

και το σχηματικό της ανάφλεξης....

brushless - arduino project - Σελίδα 3 Lead_n10

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Δευ Δεκ 23, 2019 7:27 pm

arduino και σουζα με ποδηλατο... brushless - arduino project - Σελίδα 3 2734654361


_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Τρι Σεπ 22, 2020 12:07 pm

το καλυτερο Tutorial

για Arduino Wireless Communication με το = NRF24L01





και λεπτομεριες στον κωδικα που ελενχουν την αποσταση =

https://www.youtube.com/watch?v=57pdX6b0sfw

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Πεμ Οκτ 29, 2020 1:04 pm

-nikos- έγραψε:το καλυτερο Tutorial

για Arduino Wireless Communication με το = NRF24L01





και λεπτομεριες στον κωδικα που ελενχουν την αποσταση =

https://www.youtube.com/watch?v=57pdX6b0sfw
οι κωδικες στα παραπανω βιντεο εχουν bags  brushless - arduino project - Σελίδα 3 3488693379 και δεν δουλευουν..... 


αυτος ο κωδικας δουλευει =

// transmiter 

#include "nRF24L01.h" //NRF24L01 library created by TMRh20 https://github.com/TMRh20/RF24
#include "RF24.h"
#include "SPI.h"

#define SwitchPin 8

int SentMessage[1] = {000}; 
RF24 radio(9,10); // NRF24L01 used SPI pins + Pin 9 and 10 on the NANO

const uint64_t pipe = 0xE6E6E6E6E6E6; // Needs to be the same for communicating between 2 NRF24L01 

void setup()
{
  pinMode(SwitchPin, INPUT_PULLUP); 
  digitalWrite(SwitchPin,HIGH); 
  
  radio.begin(); // Start the NRF24L01
  radio.openWritingPipe(pipe); // Get NRF24L01 ready to transmit
  radio.setPALevel(RF24_PA_MAX);
}

void loop()
{
  if (digitalRead(SwitchPin) == LOW)    // If switch is pressed
  { 
      SentMessage[0] = 111;
      radio.write(SentMessage, 1);      // Send pressed data to NRF24L01
  }
  else 
  {
      SentMessage[0] = 000;
      radio.write(SentMessage, 1);      // Send idle data to NRF24L01
  }
}



-------------------------------------------------------------------------------------------------

//reciver

#include "nRF24L01.h" // NRF24L01 library created by TMRh20 https://github.com/TMRh20/RF24
#include "RF24.h"
#include "SPI.h"

#define LED_PIN 3

int ReceivedMessage[1] = {000}; // Used to store value received by the NRF24L01
RF24 radio(9,10); // NRF24L01 SPI pins. Pin 9 and 10 on the Nano

const uint64_t pipe = 0xE6E6E6E6E6E6; // Needs to be the same for communicating between 2 NRF24L01 

void setup(void)
{
  radio.begin(); // Start the NRF24L01
  
  radio.openReadingPipe(1,pipe); // Get NRF24L01 ready to receive
  
  radio.startListening(); // Listen to see if information received
  radio.setPALevel(RF24_PA_MAX);
  pinMode(LED_PIN, OUTPUT); 
}

void loop(void)
{
  while (radio.available())
  {
    radio.read(ReceivedMessage, 1); // Read information from the NRF24L01

    if (ReceivedMessage[0] == 111) // Indicates switch is pressed
    {
      digitalWrite(LED_PIN, HIGH);
    }
    else
    {
       digitalWrite(LED_PIN, LOW);
    }
    delay(2);
   }
}


ενας απλος κωδικας με ενα κουμπακι και ενα λαμπακι 
οταν φτιαξω ολοκληρωμένο κωδικα για σερβο θα εχουμε βιντεο... brushless - arduino project - Σελίδα 3 4225001663 αγαπουλες

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Παρ Οκτ 30, 2020 2:54 pm

-nikos- έγραψε:

,,,,,,
ενας απλος κωδικας με ενα κουμπακι και ενα λαμπακι 
οταν φτιαξω ολοκληρωμένο κωδικα για σερβο θα εχουμε βιντεο... brushless - arduino project - Σελίδα 3 4225001663 αγαπουλες

προχωράμε.....

κωδικας για σερβο τηλεκατευθηνομενου που δουλευει...!!!! brushless - arduino project - Σελίδα 3 1138416066

reciver = 

#include "nRF24L01.h" //NRF24L01 library
#include "RF24.h"
#include "SPI.h"

 
////////////////////// PPM CONFIGURATION//////////////////////////
#define channel_number 6  //set the number of channels
#define sigPin 2  //set PPM signal output pin on the arduino
#define PPM_FrLen 27000  //set the PPM frame length in microseconds (1ms = 1000µs)
#define PPM_PulseLen 400  //set the pulse length
//////////////////////////////////////////////////////////////////

int ppm[channel_number];

const uint64_t pipeIn =  0xE8E8F0F0E1LL;

RF24 radio(9, 10);

// The sizeof this struct should not exceed 32 bytes
struct MyData {
  byte throttle;
  byte yaw;
  byte pitch;
  byte roll;
  byte AUX1;
  byte AUX2;
};

MyData data;

void resetData() 
{
  // 'safe' values to use when no radio input is detected
  data.throttle = 127;
  data.yaw = 127;
  data.pitch = 127;
  data.roll = 127;
  data.AUX1 = 127;
  data.AUX2= 127;
  
  setPPMValuesFromData();
}

void setPPMValuesFromData()
{
  ppm[0] = map(data.throttle, 0, 255, 1000, 2000);
  ppm[1] = map(data.yaw,      0, 255, 1000, 2000);
  ppm[2] = map(data.pitch,    0, 255, 1000, 2000);
  ppm[3] = map(data.roll,     0, 255, 1000, 2000);
  ppm[4] = map(data.AUX1,     0, 255, 1000, 2000);
  ppm[5] = map(data.AUX2,     0, 255, 1000, 2000);  
  }

/**************************************************/

void setupPPM() {
  pinMode(sigPin, OUTPUT);
  digitalWrite(sigPin, 0);  //set the PPM signal pin to the default state (off)

  cli();
  TCCR1A = 0; // set entire TCCR1 register to 0
  TCCR1B = 0;

  OCR1A = 100;  // compare match register (not very important, sets the timeout for the first interrupt)
  TCCR1B |= (1 << WGM12);  // turn on CTC mode
  TCCR1B |= (1 << CS11);  // 8 prescaler: 0,5 microseconds at 16mhz
  TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt
  sei();
}

void setup()
{  
  resetData();
  setupPPM();
  
  // Set up radio module
  radio.begin();
  radio.setDataRate(RF24_250KBPS); // Both endpoints must have this set the same
  radio.setAutoAck(false);

  radio.openReadingPipe(1,pipeIn);
  radio.startListening();
}

/**************************************************/

unsigned long lastRecvTime = 0;

void recvData()
{  
  while ( radio.available() ) {        
    radio.read(&data, sizeof(MyData));
    lastRecvTime = millis();
  }
}

/**************************************************/

void loop()
{
  recvData();

  unsigned long now = millis();
  if ( now - lastRecvTime > 1000 ) {
    // signal lost?
    resetData();
  }
  
  setPPMValuesFromData();
}

/**************************************************/

//#error Delete this line befor you cahnge the value (clockMultiplier) below
#define clockMultiplier 2 // set this to 2 if you are using a 16MHz arduino, leave as 1 for an 8MHz arduino

ISR(TIMER1_COMPA_vect){
  static boolean state = true;

  TCNT1 = 0;

  if ( state ) {
    //end pulse
    PORTD = PORTD & ~B00000100; // turn pin 2 off. Could also use: digitalWrite(sigPin,0)
    OCR1A = PPM_PulseLen * clockMultiplier;
    state = false;
  }
  else {
    //start pulse
    static byte cur_chan_numb;
    static unsigned int calc_rest;

    PORTD = PORTD | B00000100; // turn pin 2 on. Could also use: digitalWrite(sigPin,1)
    state = true;

    if(cur_chan_numb >= channel_number) {
      cur_chan_numb = 0;
      calc_rest += PPM_PulseLen;
      OCR1A = (PPM_FrLen - calc_rest) * clockMultiplier;
      calc_rest = 0;
    }
    else {
      OCR1A = (ppm[cur_chan_numb] - PPM_PulseLen) * clockMultiplier;
      calc_rest += ppm[cur_chan_numb];
      cur_chan_numb++;
    }     
  }
}
Η εξοδος ειναι στο πιν 2 σε μορφη RF ppm  brushless - arduino project - Σελίδα 3 103431122 ειναι 5 καναλια σε 6 εντολες

και το 

transmiter =

#include "nRF24L01.h" //NRF24L01 library 
#include "RF24.h"
#include "SPI.h"



/*Create a unique pipe out. The receiver has to 
  wear the same unique code*/
  
const uint64_t pipeOut = 0xE8E8F0F0E1LL; //IMPORTANT: The same as in the receiver

RF24 radio(9, 10); // select  CSN  pin

// The sizeof this struct should not exceed 32 bytes
// This gives us up to 32 8 bits channals
struct MyData {
  byte throttle;
  byte yaw;
  byte pitch;
  byte roll;
  byte AUX1;
  byte AUX2;
};

MyData data;

void resetData() 
{
  //This are the start values of each channal
  // Throttle is 0 in order to stop the motors
  //127 is the middle value of the 10ADC.
    
  data.throttle = 127;
  data.yaw = 127;
  data.pitch = 127;
  data.roll = 127;
  data.AUX1 = 127;
  data.AUX2 = 127;
}

void setup()
{
  //Start everything up
  radio.begin();
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.openWritingPipe(pipeOut);
  resetData();
}

/**************************************************/

// Returns a corrected value for a joystick position that takes into account
// the values of the outer extents and the middle of the joystick range.
int mapJoystickValues(int val, int lower, int middle, int upper, bool reverse)
{
  val = constrain(val, lower, upper);
  if ( val < middle )
    val = map(val, lower, middle, 0, 128);
  else
    val = map(val, middle, upper, 128, 255);
  return ( reverse ? 255 - val : val );
}

void loop()
{
  // The calibration numbers used here should be measured 
  // for your joysticks till they send the correct values.
  data.throttle = mapJoystickValues( analogRead(A0), 34, 524, 1020, true );
  data.yaw      = mapJoystickValues( analogRead(A1),  34, 505, 1020, true );
  data.pitch    = mapJoystickValues( analogRead(A2), 34, 544, 1020, true );
  data.roll     = mapJoystickValues( analogRead(A3), 34, 522, 1020, true );
  data.AUX1     = mapJoystickValues( analogRead(A4), 34, 522, 1020, true ); 
 
  data.AUX2     = mapJoystickValues( analogRead(A5), 34, 522, 1020, true );

  radio.write(&data, sizeof(MyData));
}


Έχει επεξεργασθεί από τον/την -nikos- στις Δευ Νοε 02, 2020 12:32 pm, 9 φορές συνολικά

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Σαβ Οκτ 31, 2020 7:48 pm

-nikos- έγραψε:
Η εξοδος ειναι στο πιν 2 σε μορφη RF ppm  brushless - arduino project - Σελίδα 3 103431122

και....οπως εψαχνα για το πως γινεται το ppm servo driver... επεσα πανω σε αυτο =

https://norcim-rc.club/Radio6.htm

λοιπων....αν το ppm γίνεται servo με ενα....4017 θα... εκπλαγω ευχαριστα... brushless - arduino project - Σελίδα 3 2734654361

brushless - arduino project - Σελίδα 3 Ppm_de10

αν και εχω μερικές αμφιβολίες.... αν στο 4017 πεσει ενας παλμος ασχετος πιθανων να χαθει η μπαλα...
θα το δοκιμασω ομως.. ειναι πολυ καλο για να ειναι αληθινό..... brushless - arduino project - Σελίδα 3 417567508

επισεις ενα ενδιαφερον λινκ για χρηση του arduino για ppm μετατροπη = https://playground.arduino.cc/Code/ReadReceiver/


Έχει επεξεργασθεί από τον/την -nikos- στις Τετ Νοε 25, 2020 7:45 am, 1 φορά

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Δευ Νοε 02, 2020 12:22 pm

και απευθηας σε σερβο δεκτης =

//Receiver Code

 

// 7 Channel Receiver

#include "nRF24L01.h" //NRF24L01 library 
#include "RF24.h"
#include "SPI.h"
#include "Servo.h"

int ch_width_1 = 0;
int ch_width_2 = 0;
int ch_width_3 = 0;
int ch_width_4 = 0;
int ch_width_5 = 0;
int ch_width_6 = 0;
int ch_width_7 = 0;

Servo ch1;
Servo ch2;
Servo ch3;
Servo ch4;
Servo ch5;
Servo ch6;
Servo ch7;

struct Signal {
byte throttle_a;
byte pitch_a;
byte roll_a;
byte yaw_a;
byte throttle_b;
byte pitch_b;
byte roll_b;

};
Signal data;
const uint64_t pipeIn = 0xE9E8F0F0E1LL;
RF24 radio(9, 10);
void ResetData()
{
// Define the inicial value of each data input.
// The middle position for Potenciometers. (254/2=127)
data.throttle_a = 127; // Motor Stop
data.pitch_a = 127; // Center
data.roll_a = 127; // Center
data.yaw_a = 127; // Center
data.throttle_b = 127; // Center
data.pitch_b = 127; // Center
data.roll_b = 127; // Center

}
void setup()
{
//Set the pins for each PWM signal
ch1.attach(2);
ch2.attach(3);
ch3.attach(4);
ch4.attach(5);
ch5.attach(6);
ch6.attach(7);
ch7.attach(Cool;

//Configure the NRF24 module
ResetData();
radio.begin();
radio.openReadingPipe(1,pipeIn);
radio.startListening(); //start the radio comunication for receiver
}
unsigned long lastRecvTime = 0;
void recvData()
{
while ( radio.available() ) {
radio.read(&data, sizeof(Signal));
lastRecvTime = millis(); // receive the data
}
}
void loop()
{
recvData();
unsigned long now = millis();
if ( now - lastRecvTime > 1000 ) {
ResetData(); // Signal lost.. Reset data
}
ch_width_1 = map(data.throttle_a, 0, 255, 1000, 2000);
ch_width_2 = map(data.pitch_a, 0, 255, 1000, 2000);
ch_width_3 = map(data.roll_a, 0, 255, 1000, 2000);
ch_width_4 = map(data.yaw_a, 0, 255, 1000, 2000);
ch_width_5 = map(data.throttle_b, 0, 255, 1000, 2000);
ch_width_6 = map(data.pitch_b, 0, 255, 1000, 2000);
ch_width_7 = map(data.roll_b, 0, 255, 1000, 2000);

// Write the PWM signal
ch1.writeMicroseconds(ch_width_1);
ch2.writeMicroseconds(ch_width_2);
ch3.writeMicroseconds(ch_width_3);
ch4.writeMicroseconds(ch_width_4);
ch5.writeMicroseconds(ch_width_5);
ch6.writeMicroseconds(ch_width_6);
ch7.writeMicroseconds(ch_width_7);

}



--------------------------------------------------------

// 7 Channel Transmitter



#include "nRF24L01.h" //NRF24L01 library 
#include "RF24.h"
#include "SPI.h"

const uint64_t pipeOut = 0xE9E8F0F0E1LL; //IMPORTANT: The same as in the receiver 0xE9E8F0F0E1LL
RF24 radio(9, 10); // select CE,CSN pin |
struct Signal {
byte throttle_a;
byte pitch_a;
byte roll_a;
byte yaw_a;
byte throttle_b;
byte pitch_b;
byte roll_b;

};
Signal data;
void ResetData()
{
data.throttle_a = 127; // Motor Stop (254/2=127)(Signal lost position)
data.pitch_a = 127; // Center (Signal lost position)
data.roll_a = 127; // Center(Signal lost position)
data.yaw_a = 127; // Center (Signal lost position )
data.throttle_b = 127; // Center (Signal lost position )
data.pitch_b = 127; // Center (Signal lost position )
data.roll_b = 127; // Center (Signal lost position )

}
void setup()
{
//Start everything up
radio.begin();
radio.openWritingPipe(pipeOut);
radio.stopListening(); //start the radio comunication for Transmitter
ResetData();
}
// Joystick center and its borders
int mapJoystickValues(int val, int lower, int middle, int upper, bool reverse)
{
val = constrain(val, lower, upper);
if ( val < middle )
val = map(val, lower, middle, 0, 128);
else
val = map(val, middle, upper, 128, 255);
return ( reverse ? 255 - val : val );
}
void loop()
{
// Control Stick Calibration
// Setting may be required for the correct values of the control levers.
data.throttle_a = mapJoystickValues( analogRead(A0), 12, 524, 1020, false );//15, 1023, 15, 190
data.roll_a = mapJoystickValues    ( analogRead(A1), 12, 524, 1020, true ); // "true" or "false" for servo direction
data.pitch_a = mapJoystickValues   ( analogRead(A2), 12, 524, 1020, false ); // "true" or "false" for servo direction
data.yaw_a = mapJoystickValues     ( analogRead(A3), 12, 524, 1020, true ); // "true" or "false" for servo direction
data.throttle_b = mapJoystickValues( analogRead(A4), 12, 524, 1020, true ); // "true" or "false" for servo direction
data.roll_b = mapJoystickValues    ( analogRead(A5), 12, 524, 1020, false ); // "true" or "false" for servo direction
data.pitch_b = mapJoystickValues   ( analogRead(A6), 12, 524, 1020, true ); // "true" or "false" for servo direction

radio.write(&data, sizeof(Signal));
}

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

brushless - arduino project - Σελίδα 3 Empty Απ: arduino project

Δημοσίευση από -nikos- Τετ Μαρ 13, 2024 10:02 am

Καθυστέρηση με millis αντι για delay...



πολυ επεξηγηματικη και ευχάριστη παρουσίαση,  brushless - arduino project - Σελίδα 3 2734654361

_________________
«αν κλείσεις την πόρτα σου σε κάθε πλάνη, στο τέλος θα μείνει απ' έξω και η αλήθεια»
-nikos-
-nikos-
Admin

Αριθμός μηνυμάτων : 2890
Ημερομηνία εγγραφής : 29/05/2013

https://doityourself123.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

Σελίδα 3 από 3 Επιστροφή  1, 2, 3

Επιστροφή στην κορυφή

- Παρόμοια θέματα

 
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης