Microcontroller (Arduino Nano) für Controller
Achtung: Momentan finden Sie nur den durchkommentierten Code für den Arduino Nano Every, welche der Microcontroller, verbaut in unserem Controller ist. Eine ausführliche Dokumentation folgt künftig.
// Programmcode für Arduino Nano Every, Microcontroller des Controllers für Roboterarm. Übernimmt die Rolle des Senders von Daten
// Bibliotheken für das NRF-Modul (NRF24L01)
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(8, 9); // Initialisieren des RF24 Objekts mit CE Pin 8 und CSN Pin 9
int values[3]; // Integer-Array zum Speichern der ausgelesenen Daten von den drei analogen Eingängen
const byte address[6] = "00001"; // Legt den Channel fest auf welchem das NRF-Modul senden soll, der Empfänger muss den gleichen Channel fürs auslesen ausgewählt haben. (Adresse für die Kommunikation, Sender & Empfänger müssen dieselbe Adresse verwenden)
void setup() {
pinMode(3,OUTPUT); // Setzt Pin 3 als Ausgang
Serial.begin(115200); // Initialisiert die serielle Kommunikation mit einer Baudrate von 115200
radio.begin(); // Initialisiert das NRF-Modul
radio.openWritingPipe(address); // Öffnet den Schreibkanal und setzt die Adresse des Empfängers (hier: 00001)
radio.setPALevel(RF24_PA_MIN); // Setzt die Sendeleistung auf Minimum, um Energie zu sparen (da der Arduino Akku-Betrieben ist)
radio.stopListening(); // Stoppt den Empfangsmodus, da dieses Modul nur sendet (der Controller muss nichts empfangen, nur Daten an den Arduino Uno schickenb)
}
void loop() {
digitalWrite(3,HIGH);
// Liest die Werte der analogen Eingänge und speichert sie im Array
values[0] = analogRead(A0); // Der Drehschalter ist am analogen Eingang 0 angeschlossen und wird ausgelesen und der ausgelesene Wert in Index 0 des "values"-Arrays gespeichert
values[1] = analogRead(A1); // Die x-Achse des Joysticks ist am analogen Eingang 1 angeschlossen und wird ausgelesen und der ausgelesene Wert in Index 1 des "values"-Arrays gespeichert
values[2] = analogRead(A2); // Die y-Achse des Joysticks ist am analogen Eingang 2 angeschlossen und wird ausgelesen und der ausgelesene Wert in Index 2 des "values"-Arrays gespeichert
// Gibt die zu sendenden Werte über die serielle Schnittstelle aus (fürs Debugging)
Serial.print("send: ");
for(int i = 2; i>=0; i--){
Serial.print(values[i]);
Serial.print(" ");
}
radio.write(values, sizeof(values)); // Sendet die Werte über das NRF-Modul
Serial.println(); // neue Zeile in der seriellen Ausgabe
}Last updated