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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Philipp D. (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User
von Philipp D. (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Philipp,

das hast Du sicher übersehen, oder?

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

von Michael B. (dermicha)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Ralph B (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht lesenswert
Hier die fertige Schaltung.

von Sascha (Gast)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.