Posts by nurazur

    ich hatte mal ein Projekt mit diesem Anemometer. Der macht 2 Impulse pro Umdrehung, und die ist spezifiziert für 1m/s .

    Die Windgeschwindigkeit berechnet sich also mit Anzahl_impulse / 2 / Zeitintervall.

    Wenn ich jetzt als Beispiel in 1 Sekunde 3 Impulse messe sind das also 3/2/1 m/s = 1.5 m/s Windgeschwindigkeit. Würde ich vorher eine Integer Division bei Anzahl_Impulse/2 vornehmen, dann gibt 3/2 in der Integerarithmetik 1, das Ergebnis wäre also nicht 1.5m/s sondern 1m/s.

    Insofern denke ich dass Zeile 22 im Code des TE absolut in Ordnung ist.

    ABER: Der verlinkte Windmesser liefert ein vollkommen symmetrisches Rechtecksignal, d.h an einem Punkt liefert er eine steigende Flanke, und eine halbe Umdrehung später (also bei 360 Grad Baerbock [SCNR!]) eine fallende Flanke. Die Spezifikation ist also nicht 100% korrekt, statt "Impulse" müsste es "Flanken" heissen.

    Daher würde ich den TE hajupiko49 ermuntern wollen, die Zeile 19 zu überprüfen:

    attachInterrupt(digitalPinToInterrupt(SensorPin), countup, RISING);

    Bekommt er WIRKLICH 4 steigende Flanken pro Umdrehung? Oder muss er den Interrupt entsprechend ändern:

    attachInterrupt(digitalPinToInterrupt(SensorPin), countup, CHANGE);

    Ich habe leider nur mit diesem einen Anemometer gearbeitet, ist also nur eine Vermutung.

    ich habe gedacht das diese Zeile eventuell besser ist.
    Code InterruptCounter = InterruptCounter / 4; WindSpeed = ((float)InterruptCounter / (float)RecordTime * 2.4);

    Vielleicht besser teilen, bevor es in float geht. Probier bitte beides aus.

    Frage:  InterruptCounter ist ein int, daher ist InterruptCounter / 4 eine Integer Division. Geht da nicht eine Menge an Aufloesung drauf? oder ist das Absicht?

    Ich verwende dieses Modul [Anzeige] und bin seit Jahren damit zufrieden.

    Wenn so ein Modul direkt von Sparkfun oder von Adafruit stammt, habe ich dazu prinzipiell Vertrauen. Wenn du es auf Ebay, Ali oder so für < 1 EUR siehst, würde ich vom Kauf abraten.

    Du kannst wetten das jedes Adafruit oder Sparkfun Modul von den Chinesen kopiert wird, meist mit minderwertigsten Bauteilen. Da muss man echt aufpassen.

    Interessiert mich auch denn ich hatte damals auch mit Kupferkabel mit LAMDA/4 rumprobiert aber kaum Verbesserungen bekommen. Erst die o.g. Antenne hat dann ein gutes Ergebnis gebracht.

    Das liegt wahrscheinlich daran dass die Entwickler der Fernbedienung sorgfältig darüber nachgedacht haben wie sie die elektrische HF Leistung des Senders in die Luft bekommen, dh in elektromagnetische Wellen umwandeln. Dazu muss man ein Minimum an Ahnung haben wie Antennen physikalisch funktionieren, und man muss die komplexe Impedanz des Senders (meist mit induktivem Anteil) konjugiert komplex an die Antenne anpassen. Dazu benoetigt man entsprechendes Messequipment. Es gibt unzählige Moeglichkeiten wie man eine 433MHz Antenne auf kleinem Raum auf einer Leiterplatte unterbringt. Dazu gibt es dicke Bücher.

    Diese kleinen Sender mit SAW Resonator und 1 Transistor drauf sind zwar billig, aber sie taugen nicht viel. Die Frequenz auf der sie Schwingen ist mehr oder weniger Zufall, die schwingen halt irgendwo im 433MHz Band, ich habe bis zu 120 kHz Frequenzversatz gemessen. Die Ausgangsimpedanz eines solchen Senders ist voellig unbekannt und schwankt wie die Frequenz mit der Versorgungsspannung. Daher ist Antennenanpassung mehr als fraglich. Selbst wenn ich davon ausgehe dass der Sender ideale 50 Ohm Ausgangsimpedanz hat, reicht ein 17cm Draht nicht aus, da dies nur die eine Häfte eines lambda/4 Dipols ist.

    Daher ist die Wahl einer GUTEN externen Antenne zu empfehlen. Lamda/4 Dipole kann man sich selbst herstellen, aber die Leitung vom Sender zur Antenne sollte moeglichst kurz sein bzw. selbst als Teil der Antenne verstanden werden.

    ich habe mit einer solchen Geometrie sehr gute Erfahrungen gemacht, die Drahtlänge für 433MHz ist ca. 16.5 mm.

    Als Sender verwende ich allerdings kein "Billigmodul" sondern ein RFM69HCW Modul von HopeRF (kostet auch nicht die Welt!). Die Dinger sind millionenfach bewährt und haben ca. 50 Ohm Ausgangsimpedanz. Der Nachteil ist dass man sie über SPI erst einmal konfigurieren muss bevor man Daten in die Luft bekommt. Aber Bibliotheken dafür gibts wie Sand am Meer.

    Kupferdraht sollte es schon sein, Büroklammer nicht.

    die Logik dahinter verstehe ich nicht? Büroklammer ist ein Leiter, Kupferdraht auch. Was eine gute Antenne ausmacht ist ihre Anpassung der Impedanz des Senders an die Luft. Ob das jetzt Eisen, Aluminium oder Kupfer ist, ist wurscht.

    Ich habe einen Pi mit einem Funk-Sender versehen (433 MHz) und aus einer alten Büroklammer eine Antenne (das letzte Drittel ist eingedreht) gebastelt.

    Welchen Sender verwendest du? (Foto)

    Eine Antenne muss immer zwischen dem Sender und der Luft angepasst sein. Mit dem bisschen Draht einer Büroklammer wird das eher nichts. Bei 433 MHz kannst du es mit einem Draht mit 17cm Länge probieren, aber der sollte dann moeglichst gerade sein und vom Sendemodul lateral wegzeigen.

    Ich habe diese externe Antenne [Anzeige] bei mir angeschlossen

    super Antenne! Mit 10dBi Antennengewinn hast du halt schon eine gewisse Richtwirkung. Solche Antennen senden eher "flach", d.h. nach oben oder unten sind sie nicht so optimal. Aber was reden wir über ein paar dB. Zwischen Büroklammer und einer gut angepassten Antenne liegen locker mal 30 dB, das ist eine Hausnummer. I

    alles Mius

    meinst du "Minus"?

    Alle dBm Werte kleiner als 1mW sind negativ, per Definition. 0 dBm entspricht 1 mW, also 3dBm = 2* 1mW und -3dBm = 1/2 mW

    Worauf es ankommt ist (Anzahl unkorrigierter Fehler)= 2540 postBER= 0

    unkorrigierte Fehler sind Bit-Fehler im roh empfangenem Signal. Da die Bitfolge bei digital modulierten Signalen mit Fehlerkorrektur codiert ist,

    koennen einzelne Bit Fehler fast immer rekonstruiert werden. Wenn dann postBER =0 rauskommt, ist dein Signal perfekt.

    dvb-t2 Signal= -62,00dBm S/R= 21,00dB UCB

    Eselsbrücke 1: 3 dB entspricht in etwa Faktor 2

    Eselsbrücke 2: 10 dB entspricht Faktor 10.

    Das reicht fast immer.

    Dezibel sind ein logarithmisches Mass, deshalb gilt 3dB + 3dB = 2*2 = 4.

    20 dB= 10dB + 10 dB = 10*10 = 100

    dBm ist das Verhältnis zu 1mW an 50 Ohm.

    dB ist einfach ein Faktor (der Leistung, nicht der Spannung)

    also: -62 dBm = -50 -12 = 1/ 10^5 / 2^4 = 1/ (100000*16) = 1/1600000 mW. (12dB = 4*3dB = 2*2*2*2 = 16)

    und : 21dB = 7*3dB, also 2^7 = 128.

    Wobei bei einem DVB-T Signal von -62 dBm und 21 dB S/N das Signal optimal sein müsste, also die Bitfehlerrate nahe Null sein sollte.

    Manche Empfänger geben eine Empfangsqualität an, die sollte in diesem Fall 100% sein, sofern keine Interferenzen im Signal vorhanden sind.

    ich bestelle regelmässig bei Aliexpress in China, aber nur Kleinzeug. Da fällt normalerweise keine Zollgebühr an, aber die Mehrwertsteuer wird seit Juli 22 automatisch erhoben.

    Wenn man hin und wieder Kleinteile bestellt, dauert die Lieferzeit im Durchschnitt 3 Wochen.

    Wenn man mehrere Posten gleichzeitig bestellt, wird man oft "upgeraded" zu "10 days Delivery". Die Teile werden dann irgendwo in Deutschland zu einem einzigen Paket zusammengepackt, und die Lieferzeit ist tatsächlich ca. +/- 1 Woche.

    Sehr schlechte Erfahrungen mache/machte ich mit Prozessoren, speziell denen die bei serioesen Liferanten (Farnell, Mouser, RS, Reichelt...) nicht mehr lieferbar sind. Z.B. einen Atmega328P oder ATtiny85 würde ich nie wieder in China bestellen. Sie liefern zur Zeit nur Fakes oder 2.Wahl. Letzter Versuch im Sommer '22: 5 St. Attiny2313 bestellt, davon waren 4 bei Eintreffen kaputt. Sofort reklamiert, nach 3 Tagen rückerstattet.

    Bevor man Prozessoren oder hoeherwertige IC's in China bestellt sollte man auf jeden Fall schauen ob die einschlägigen Distributoren die Teile auf Lager haben. Wenn nicht, Finger weg!

    Zur Ehrenrettung von Aliexpress muss ich sagen dass sie alle meine Reklamationen ohne weiteres rückerstattet haben, ich musste die Ware mit einer Ausnaheme nie zurücksenden.

    Wenn eine Lieferung nach 60 Tagen nicht bei mir eintrifft, erstattet Aliexpress die Kosten anstandslos zurück.

    Während der C Geschichte gabs hin und wieder Probleme mit der Post, wenn Lieferungen als geliefert gemeldet wurden aber nie bei mir angekommen sind. Da zahlt Aliexpress nicht, das ist super ärgerlich aber nicht zu ändern. Inzwischen läuft das aber wieder wie geschmiert.

    Hier muss man nicht um den heißen Brei herum reden, sondern einfach nur sagen, und die Frage des TO beantworten: -> "Es geht !" oder "Es geht nicht !"

    Es geht!

    Der Rest ist Geschmacksache.

    Die Idee mit dem USB Cardreader ist insofern ungünstig als der Zero nur einen einzigen USB Port hat und der würde hier vom AVR Brenner benutzt. Ein zweites USB Gerät koennte man also nur mittels USB Hub anschliessen.

    Die Idee mittels extra SD Karte bestimmte/neue Dateien auf das System zu spielen finde ich auch ziemlich bloed, da ist SSH/FTP über WiFi wesentlich praktischer. Das System Einrichten, Autostart konfigurieren, Python Programm entwickeln/ueberspielen etc muss der TE sowieso auf der SD Karte im Slot machen. SD Karte rein-raus-rein-raus ist am Raspberry etwas problematisch, mir sind auf die Weise schon zwei Raspberries (Mk1 VersionB) kaputt gegangen.

    Aber wie gesagt das ist Geschmacksache.

    soll dieser eine USB Anschluß des Zero's nur für 350 mA ausgelegt sein

    Und wo ist jetzt das Problem? Der Brenner nimmt < 10mA

    wie auch den SD-Kartenlaser darüber betrieben

    eben nicht. Der Raspbery Pi Zero W hat bereits einen SD Kartenleser integriert.

    Und der Brenner muss ja nicht über USB versorgt werden.

    nicht notwendigerweise, aber wenn es der o.g. DIAMAX Brenner sein soll dann schon.

    ist das Dateisystem dieses RasbianOS nicht ohne weiteres und mit Hilfe eines Windows-basierten PCs zu beschreiben.

    Fake News. Von der Raspberry Pi Foundation gibt es den "Raspberry Pi Imager" welcher auf meinem Windows 10 einwandfrei funktioniert. Daneben gibt es eine Reihe weiterer Tools wie z.B. den Win32DiskImager.

    Die Idee mit dem Raspberry Pi Zero ist aus meiner Sicht ebenfalls die beste und einfachste Herangehensweise. Ich hab interessehalber ein wenig gesucht ob es kleine mobile Systeme mit Linux drauf gibt, aber was ich gefunden habe sind mehr oder weniger nur experimentelle und/oder Bastler Loesungen. Praktischerweise würde ich einen Zero W nehmen, der hat WiFi und damit tut man sich enorm viel leichter beim Entwickeln, Uebertragen von Dateien und Warten des Systems, weil man mittels SSH vollen Zugriff auf den Raspberry hat.

    Ein SD-Kartenleser muss wohl auch noch dran.

    Muss er nicht, weil der Raspberry Pi Zero sein Betriebssystem und sein Filesystem auf einer Mikro-SD Karte hat. Das ist schon einmal eine Komponente um die du dich dann nicht mehr kümmern musst.

    Ich gehe mal davon aus du machst das Raspberry OS (light Version) auf die SD Karte, zusammen mit avrdude und einem Verzeichnis in dem die hex Dateien stehen.

    Der AVR Brenner wird an dem (einzigen) USB Port angeschlossen den der Zero hat.

    Wie man ein paar Taster und LED's an den Raspberry hängt steht in jeder Anleitung für Raspberry Pi Anfänger.

    Das ganze mit einem Python Programm zusammen gehängt, ist das problemlos zu machen.

    Ist das mit einem PICO überhaupt umsetzbar ?

    die Hardware ist kein Problem.

    Ich sehe allerdings ein grosses Problem bei der Software: Auf dem Pico läuft kein Linux. Und damit ist es wieder ein Problem mit der Hardware.

    Das heisst du musst den Code der den ATTINY85 flasht irgendwo als Source nehmen (z.B avrdude) und auf dem Pico umsetzen. Ich kann mir nicht vorstellen dass das jemals jemand versucht hat.

    Der burn-o-mat benutzt hoechstwahrscheinlich avrdude als im Hintergrund laufende Software zum Flashen. Der AVR Brenner setzt die von avrdude kommenden Kommandos auf den ISP (SPI Interface) um. Die Brenner Software gibt es für Arduinos zusammen mit der Arduino IDE. Den Source Code von avrdude gibts auch, ist aber ziemlich komplex und du müsstest den Code irgendwie auf deine Bedürfnisse herunterbrechen.

    Vielleicht hat jemand eine Idee ob es eine Platform gibt auf der ein minimales Linux OS läuft so dass man avrdude leicht(er) portieren kann?

    Also weil du mich gerade verunsichert hattest, habe ich es nochmals mit einem minimal Beispiel probiert, aber der zeigt definitiv eine 0 bei den verfügbaren Geräten an, egal ob 1 oder 2 Sensoren angeschlossen sind

    jetzt hast du mich verunsichert, deshalb hab ich nochmal in meinem Sketch nachgeschaut und getestet, bei mir funktionierts einwandfrei.

    Zwischen Einschalten der Versorgungsspannung und begin() habe ich 10ms delay gesetzt, und zwischen begin() und sensors.getDeviceCount() ebenfalls 10ms. Warum weiss ich nicht mehr.

    Meine Version der Bibliothek ist allerdings schon etwas älter, Version 3.7.2

    Das ist bei mir beim testen immer 0 gewesen, obwohl ich Temperaturen auslesen konnte. Frag mich nicht wieso,

    kann ich dir beantworten: du musst, bevor du irgendwas machst, sensors.begin() aufrufen. Das wird (leider) nicht im Konstruktor gemacht.

    Edit: sorry ich seh grad du machst das ja im setup() - dann hab ich erst mal keine Erklärung!

    wenn z.B überhaupt kein Sensor gefunden wird, ist tempC == 0 was groesser als -100 ist.

    Mir fallen zwei drei Loesungen ein:

    1. initialisiere tempC mit etwas das kleiner oder gleich -127.0 ist.

    2. (meine Präferenz) verlasse die Schleife mit break; statt der unschoenen Zuweisung tempC=-127.0;

    3. Besser: die Anzahl der gefundenen Sensoren bekommst du mit sensors.getDeviceCount(). Dann kannst du es mit einer for Schleife abarbeiten.

    @McFlyD Danke für das Video. Du triffst hier meinen Nerv weil ich derzeit herumprobiere womit ich am besten zurecht komme.

    Ich habe früher wxWidgets in C++ verwendet, aber fand es umständlich. Der einzige Vorteil ist dass wxWidgets den Code direkt in der Zielsprache ausgibt.

    Leider ist der Sound deines Videos bei mir extrem leise, ich musste mich in einem stillen Kämmerchen einschliessen um zu hoeren was du sagst.

    Dein Video hab ich ganz durchgearbeitet und auch alles verstanden, nur die Tatsache dass du immer zwischen dem QT5 Designer und dem Editor (Spyder) umschaltest hab ich anfangs nicht mitbekommen, weil du es nicht explizit ansagst. Ich dachte das ist im QT Designer enthalten, fand aber nicht wohin ich klicken muss. --- Bis ich auf die Kopfzeile geschaut hab. Soll keine kritik sein, nur ein Verbesserungsvorschlag für evtl folgende Videos. Ansonsten :thumbup: