Hallo Willi3
Falls Du die Meldung "keine Berechtigung" erhältst, hast Du mal versucht das ganze als "root" auszuführen ?
Hallo Willi3
Falls Du die Meldung "keine Berechtigung" erhältst, hast Du mal versucht das ganze als "root" auszuführen ?
Hallo Willi3
Wenn Du den Raspberry in C programmieren willst, kann ich Dir dazu die Entwicklungsumgebung VisualStudio dringend empfehlen.
Dagegen kannst Du Geany und Eclipse vergessen.
Die liefern Dir bei der Installation sogar ein Projekt für den Rasperry dazu. In dem Projekt wird mittels WiringPi eine Leuchtdiode zum blinken gebracht.
In das Projekt kannst Du dann Deinen Code einfügen.
Damit kannst Du Deinen Code debuggen, "Breakpoints on the fly" auf Programmadressen als auch beim Zugriff auf Speicheradressen.
Variablen sichten und ändern.
Und alles funktioniert letztlich via gcc, g++ und gdb auf dem Raspberry, Colibri, Linux-PCs usw.
Und mit C kannst Du immer den schnellsten und effizientesten Code schreiben.
Übrigens, im angehängten Bild debugge ich ein Projekt in einen Rasperry der etliche Kilometer entfernt ist via Wireguard-Tunnel und Cellular-Modem,
ohne mich mit den Jungs von der IT im Zielobjekt rumärgern zu müssen.
Das CM4 hat doch einen ganz anderen Sockel ?
Was für eine Art Relais schließt Du denn da an den GPIO0 an, und wann und von wo nach wo misst Du 0,8 Volt?
Es gibt doch das CM3.
Hallo alexlev
Bist Du sicher, dass der GPIO des Kanals 2 nicht vom Betriebssystem benutzt wird ?
z.B. PCM/Audio ?
Hallo scheffe2804
welche Verbindung des 3B+ macht welche Probleme ?
Hallo 4Zap
Wenn Du den Schwimmerschalter vom GPIO nach Masse schalten lässt, solltest Du den inneren Pull-Up-Widerstand des GPIOs einschalten.
Falls der eingeschaltet ist, solltest Du bei geöffnetem Schwimmerschalte eine Spannung von etwa 3,3 Volt am GPIO gegen Masse messen können.
Den inneren Pull-Up-Widerstand kannst Du mit einem Multimeter messen, wenn Du die Messspitzen an die 3,3V an Pin 1 und an den jeweiligen GPIO hälst.
Der Widerstand hat einen Wert von ca. 50kΩ. Zudem muss auch sichergestellt sein, dass nicht geichzeitig der Pull-Down-Widerstand eingeschaltet ist.
In dem Fall würdest Du nur etwa 1,6 Volt am GPIO gegen Masse messen. Außerdem solltest Du natürlich sicherstellen, das der gewählte GPIO nicht durch das Betriebssystem schon belegt ist ! Leider kann man die Einstellung der Widerstände nicht per Software zurück lesen.
Gruß
Prittzl
Nein, habe nicht gelesen. Da hätte ich gar nichts zu geschrieben.
Wenn die obige Konstellation nicht läuft, muss er ja richtig was kaputt gemacht haben.
Da sind die Möglichkeiten Fehler zu machen ja unbegrenzt.
So braucht er doch lediglich sein letztes intaktes Back-Up zu installieren oder ?
@rp444
Raspberry Compute Modul CM3 mit BullsEye
Hallo luemar
ich habe den ew-7811UN mit nachstehenden Kommandos in der Konsole zum Laufen bekommen:
sudo wget "http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/8188eu-5.10.63-v7-1450.tar.gz"
sudo tar xzf 8188eu-5.10.63-v7-1450.tar.gz
sudo ./install.sh
Vielleicht hilfts ja auch bei Dir
Gruß
Prittzl
Ich nehme Alles zurück. Ich hatte ein falsches Schaltbild.
Der Optokoppler ist ein 817C;
Der braucht eine Spannung von U=5V am Eingang, wobei dann ein Strom von I = 5 mA fließt.
Das Relaismodul ist dann wohl am einfachsten mit einem Levelshifter "IIC I2C Logic Level Converter Bi-Directional" o.Ä. zur Anpassung an einen Raspberry zu gebrauchen.
Im Schaltplan kann ich keinen Optokoppler erkennen. Lediglich einen Transistor J3Y. Der hat ein hfe von 85 bis 300.
Selbst bei einem hfe von 85 geht der J3Y ab einem Strom unter Ic = 0,32 A in die Sättigung.
Ich habe mir den Schaltplan des Moduls "Keyes_SRly" im Internet angesehehen.
Darauf ist zu erkennen, dass sich in der Zuleitung zur Basis des Transistors eine Leuchtdiode und ein Vorwiderstand befindet.
Damit die LED leuchtet wird etwa ein Basistrom von 5 mA fließen. Eine rote LED benötigt ca. U = 2,7 V. D.h es wird ein Widerstand von 470Ω eingebaut sein.
Wenn die LED durch einen 270Ω Ohm Widerstand ersetzt wird, ist der Vorwiderstand der Basis insgesamt R = 470Ω + 270Ω = 720Ω.
Bei einer Spannung am GPIO von U = 3,3V und einer Basis-Emitterspannung von 0,6V fließt ein Basisstrom von ca. I= 3,75 mA.
Bei einem hfe = 150 des Transistors, kann der Kollektorstrom dann Ic = 0,56 A betragen. Dass sollte für den Spulenstrom des Relais reichen.
Hallo ElectronicMaker
Wenn Du die Leuchtdiode auf dem Keyes_SRly durch einen 270Ω Widerstand ersetzt, wird das Relais arbeiten.
Hallo Raumsonde
Den Raspberry mit "Visual Studio" zu programmieren ist eine Supersache.
Ich selbst prorgrammiere den Raspberry "seit" VS 2015.
Vorher habe ich mit Eclipse und Cross-Compiling gearbeitet. Das heißt, der C-Code wurde auf dem PC übersetzt. Anschließend wurde der ausführbare Code in den Raspberry hinein geladen.
"Visual Studio" arbeitet mit Remote-Compiling. Dabei wird der Source-Code zum Raspberry geladen und auf dem Raspberry via GCC bzw. G++ überstetzt.
Der Vorteil beim beim Remote-Compiling ist, dass der Wechsel zu einer anderen Hardware (Cortex, Banana Pi, ... usw.) sehr leicht zu bewerstelligen ist, da die Systeme ja ihren eigenen gcc immer mitbringen.
Da lediglich immer nur die aktuell geänderten C-Dateien kopiert und neu übersetzt werden, spielt auch selbst bei sehr großen Projekten die Übersetzungszeit keine Rolle.
Breakpoints können "on the fly" gesetzt und gelöscht werden. Zudem sind Breakpoints auf Daten-Zugriff möglich, d.h., ein Programm wird angehalten, wenn eine oder mehrere gewählte Variablen gelesen oder beschrieben werden.
Variableninhalte können natürlich auch gesichtet und geändert werden.
Nach der Installation von VS 2022 wird auch schon ein kleines Projekt für den Raspberry angeboten, um den Einstieg zu erleichtern.
Das Programm lässt eine Leuchtdiode blinken. Dabei wird vorausgesetzt, dass "WiringPi" installiert ist.
Zudem kann man damit auch mit einem Windows PC Programme für einen Linux PC schreiben und debuggen.
Hallo Georgi96
Um die Zustände von 32 GPIO-Pins zu lesen benötigt der Raspberry nicht einmal 1 Nanosekunde.
Das ist ein Maschinenbefehl.
Ich habe das jetzt einmal ausprobiert mit einem Raspberry- Compute-Modul mit einem CPU-Kern.
Das Auslesen eines GPIO-Ports (32 Bit) und das Schreiben der Daten von 4 Pins in die die Datei auf der Ram-Disk jede μ-Sekunde geht ganz gut.
Das liegt daran, dass mir als Taktgeber der Timer des BCM2835 zur Verfügung steht, und der zappelt mit der Frequenz von 1MHz.
Wenn man dem 5ten Pin des GPIO-Ports einen externen Takt zuführt, geht 's sicherlich noch schneller.
Somit kannst Du die Daten aus der Datei auslesen und plotten.
Das Projekt ist mit Visual-Studio in C für den Raspberry geschrieben, ich kann es Dir gerne zukommen lassen.
Gruß
Prittzl
Einen Digitaleingang kann man wie folgt abfragen:
Man definiert eine Integer-Varibale (zähler) und einen Merker (Flag);
In einem Umlaufprogramm (z.B. main) fragt man den Zustand des GPOIs ab.
Ist der Zustand 1 zählt man die Variable um 1 hoch;
Ist der Zustand 0 zählt man die Variable um 1 runter;
Wird der Zählerstand beim hochzählen 10 setzt man den Merker auf 1 und begrenzt den Zähler auf 10;
Wird der Zählerstand beim herunterzählen 0, setzt man den Merker auf 0 und begrenzt den Zähler auf 0;
Nachfolgende Programme, welche den GPIO auswerten sollen, fragen dann den Merker ab anstatt des GPIOs direkt.
Setzen des Merkers ist eine Flanke. Löschen des Merker ist eine Flanke.
Ob man bis 10 oder 100 zählt, hängt vom Abfragezyklus und dem Prellverhalten des Schalters ab.
Mach ich seit über 30 Jahren so. Hat mich noch nie enttäuscht.
Ich habe festgestellt, dass das streched Jessie das letzte Debian Image war, welches auf einem Zero, Pi 3 B+ (und älter) auf Anhieb sicher lief. Beim Buster klemmte das GUI.
Dafür lief das Pi OS auf dem Pi 4 einwandfrei, aber die älteren Debian Versionen nicht.
Ob man die Fehler durch irgendwelche Klimmzüge beheben kann, weiß ich nicht.
Da habe ich viel Zeit mit vertan.
Vielleicht wird es ja mal wieder eine Debian-Version geben, welche auf allen Raspberries auf Anhieb läuft.