Die korrigierten Sketche:
Arduino Uno
//Kommunikation
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(7, 8);
byte addresses[][6] = {"1Node", "2Node"};
boolean role; // The main role variable, holds the current role identifier
boolean recieve = 1, senden = 0; // The two different roles.
void setup () {
Serial.begin(250000);
//Kommunikation starten
radio.begin(); // Start up the radio
radio.setAutoAck(1); // Ensure autoACK is enabled
radio.openReadingPipe(1, addresses[0]);
radio.startListening(); // Start listening
}
void loop () {
float got_tempout; // Variable for the received timestamp
while (radio.available()) { // While there is data ready
radio.read( &got_tempout, sizeof(got_tempout) ); // Get the payload
}
Tiny:
#include <SPI85.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <OneWire.h>
#include <DallasTemperature.h>
// Hardware configuration: Set up nRF24L01 radio on SPI bus plus pins 9 & 10
#define CE_PIN 7
#define CSN_PIN 3
RF24 radio(CE_PIN, CSN_PIN);
byte addresses[][6] = {"1Node", "2Node"};
boolean role; // The main role variable, holds the current role identifier
boolean recieve = 1, senden = 0; // The two different roles.
#define ONE_WIRE_BUS 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
sensors.begin();
sensors.setResolution(9);
// Setup and configure rf radio
radio.begin(); // Start up the radio
radio.setAutoAck(1); // Ensure autoACK is enabled
radio.openWritingPipe(addresses[0]);
}
void loop(void) {
sensors.requestTemperaturesByIndex(0);
float tempout = sensors.getTempCByIndex(0);
radio.write( &tempout, sizeof(tempout) );
}
Du bremst den Empfänger, sendest aber völlig ungebremst.
Wie genau bremse ich den Empfänger im Programm?
Es kann sein, dass der Tiny 0.0 sendet. Da ich aber den DS18S20 bereits am Uno geteste habe und nun am Tiny genau gleich angeschlossen habe, denke ich, dass der Anschluss korrekt ist und somit eigentlich die richtige Temperatur ausgelesen werden müsste.