Forum: Mikrocontroller und Digitale Elektronik Attiny85 mit 433mhz Sender & Empfänger


von Philipp D. (Gast)


Lesenswert?

Hallo,
vorab: ich Programmiere noch nicht lange mit dem Attiny.
Ich habe ein 433mhz sender & empfänger, und versuche diese mit dem 
Attiny auszuwerten bzw. zu senden. Die Module funktionieren, da ich 
diese bisher mit einem Raspberrypi Zero in Benutzung hatte. Nun will ich 
aber keinen ganzen pi nur für 1io kabel verschwenden, daher der Attiny. 
Nun zum Problem: Ich habe im Internet gesucht, und auch gefunden, jedoch 
funktioniert es bei mir nicht.
Hier zuerst der Code für der Empfänger:
//
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
int ledPin = 0;

void setup()
{
  mySwitch.enableReceive(1);
}

void loop()
{
  if (mySwitch.available())
  {
    int value = mySwitch.getReceivedValue();

    if (value == 0)
    {
      digitalWrite(ledPin, 0);
    }
    else
    {
      digitalWrite(ledPin, 1);
    }
    mySwitch.resetAvailable();
  }
}

//
Und hier die Verkabelung:
ATT pin6 - Empfänger Data pin
ATT pin5 - Led

von Michael B. (dermicha)


Lesenswert?

Mit welcher Hardware und welcher Bibliothek dort sendest du?

Ich habe mir ein Schänzchen gesucht, mit einem Arduino zu senden, und 
dann mit dem Raspberry zu empfangen. Und muss als nächstes meinen Kram 
auf den von dir erwähnten Tiny portieren.

von Stefan F. (Gast)


Lesenswert?

> jedoch funktioniert es bei mir nicht.

Das ist keine aussagekräftige Fehlerbeschreibung. Enstprechend bekommst 
du eine passender Antwort:

Entweder ist dein Programm oder die Hardware irgendwo fehlerhaft.

Nachtrag: Ein Schaltplan könnte auch hilfreich sein, sowie ein 
Oszillogramm der seriellen Dateinleitungen.

von Philipp D. (Gast)


Lesenswert?

Es gibt keine Fehlermeldung. Das Programm wurde auf den Tiny ohne 
Fehlermeldung drauf geladen. Ich habe es mit verschiedenen Bibliotheken 
versucht, wie man sehen kann versuche ich grade die RCSwitch 
Bibliothek(Die selbe wie auf dem Pi). Ebenfalls bin ich auf den Gedanken 
gekommen, dass es vielleicht nicht möglich ist, vom Tiny zum Pi zu 
senden, jedoch habe ich einen sender an einen anderen Tiny gesteckt um 
zu sehen was passiert, was nichts war.

von tommy (Gast)


Lesenswert?

Hallo Philipp,

das hast Du sicher übersehen, oder?

Stefan U. schrieb:
> Nachtrag: Ein Schaltplan könnte auch hilfreich sein

von Michael B. (dermicha)


Lesenswert?

Hast du mal geprüft ob die Bibliothek überhaupt auf nem Tiny läuft, und 
am Ende nicht einen Mega als Untersatz braucht?

von Stefan F. (Gast)


Lesenswert?

Was funktioniert denn nicht? Mikrocontroller haben zahlreiche 
Funktionen, gehen wir die mal durch:

1) Spannungsversorgung liegt an, aber ist sie stabil?
2) Das Programm lässt sich in den Flash Speicher übertragen -> Ok
3) Der Mikrocontroller wird getaktet und arbeitet (mit LED-Blinkprogramm 
testen).
4) Auf den seriellen Leitungen RxD und TxD tut sich irgendwas (mit LED's 
bei niedriger Baudrate testen)
5) Mit einem Oszillogramm verifiziert man, ob die seriellen Daten 
korrekt übertragen wurden bzw. was daran falsch ist.

Außerdem solltest du uns wirklich deinen Schaltplan zeigen, auch ein 
Foto vom Aufbau hilft oft, grobe Fehler zu erkennen.

von Georg M. (g_m)


Lesenswert?

Philipp D. schrieb:
>  Ich habe im Internet gesucht, und auch gefunden, jedoch
> funktioniert es bei mir nicht.

RCSwitch funktioniert mit Arduino UNO und einigen 
Funksteckdosen-Protokollen ziemlich sicher:

https://www.youtube.com/watch?v=9JBkpcDb5wI


Du musst schon herausfinden, was bei deinen Konfigurationen anders ist.

von Joachim S. (oyo)


Lesenswert?

Liegt der Fehler möglicherweise einfach daran, dass Du vergessen hast 
ledPin  in setup() als Output zu definieren?

von Ralph B (Gast)


Lesenswert?

Hallo Philipp,
du definierst LED-Pin = 0 und ReceivePin = 1, verkabelst aber, wie du 
unten schreibst, Led auf Pin 5 und ReceiverPin auf 6.

Das würde ich noch einmal prüfen.

von herfel (Gast)


Lesenswert?

Hallo,
ich habe gerade heute meinen ATtiny85 mit einem 433 Mhz Sender ganz 
leicht zum laufen bekommen. Bei der Programmierung des ATtiny habe ich 
für mich den einfachsten Weg gewählt. Ich habe mir einen Programmer mit 
einem 6adrigen Kabel gekauft(zusammen knapp 9€). Programmieren über den 
Arduino IDE mit USBasp. klappt auf Anhieb. Ich habe auch erst mit dem 
BLINK Sketch angefangen.Der fertige Aufbau ist gerade mal 4x3cm gross. 
bisher hatte ich die Schaltung mit einem Arduino pro mini realisiert. 
Ich überwache damit meinen Teichwasserfalll auf  Trockenlauf. Demnächst 
baue ich meine  Teichwasserniveauregelung auch vom Arduino Pro Min auf 
den ATtiny85 um. Man spart sehr viel Platz, Geld und Stromverbrauch. Bei 
mir läuft die Regelung über ein Solarpanel mit einem kleinen 12V Akku 
1,2 Ah  und einem Step up Regler auf 5V hervorragend.
Ich muss aber auch erwähnen, dass ich auch grosse Schwierigkeiten hatte. 
Nur, wie beschrieben, mit dem Arduino IDE und als Programmer Arduino as 
ISP hat es nicht geklappt.

herfel

von Hermut F. (herfel)


Angehängte Dateien:

Lesenswert?

Hier die fertige Schaltung.

von Sascha (Gast)


Lesenswert?

Soweit ich in der RCSwitch.h lese (mein Englisch ist nicht das beste) 
funktioniert mit dem Tiny85 das Empfangen nicht?


// At least for the ATTiny X4/X5, receiving has to be disabled due to
// missing libm depencies (udivmodhi4)
#if defined( _AVR_ATtinyX5_ ) or defined ( _AVR_ATtinyX4_ )
#define RCSwitchDisableReceiving
#endif


Oder liege ich da falsch?
Mein Nano als Empfänger funktioniert einwandfrei. Wenn ich aber den 
selben Code (mit geänderten Pins) auf den Tiny lade funktioniert der 
Empfang nicht mehr. Das manuelle schalten über angeschlossenen Button 
funktioniert aber.

von Stefan F. (Gast)


Lesenswert?

Ich würde mal nachschauen, wozu die libm überhaupt benötigt wird. 
Vielleicht kann man die entsprechenden Stellen im Quelltext durch etwas 
Anderes ersetzen.

von Philipp K. (philipp_k59)


Lesenswert?

Bin da auch gerade mal am schauen..


Schnellste Lösung mit rc-switch, hier ganz unten:
https://arduino.stackexchange.com/questions/6681/rcswitch-on-attiny85

Hier etwas anders.. ein Pull Request:
https://github.com/sui77/rc-switch/pull/59

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.