Verkürzt es die Lebensdauer vom Mikrocontroller, wenn ich die mA reduziere (Beschreibung unten)?

Ich möchte ein paar Dekorationen mit farbwechselnden RGB-LEDs ausstatten.

(Ja, Sorry, jetzt ist der RGB-Virus bei mir auch angekommen. 😔)

Normalerweise dekoriere ich seit vielen Jahren einfach mit normalen 3 oder 5mm LEDs in verschiedenen Farben. Zur Verbesserung der Lebensdauer schließe ich die LEDs immer weit unter ihrer Maximalleistung an. (fetter Widerstand)

Nun habe ich mir diese LEDs hier gekauft:

https://www.amazon.de/dp/B08DCZ6VB1/?coliid=I1DN8U5YMP8RFG&colid=128BZFVTSDYOA&psc=0&ref_=lv_ov_lig_dp_it

Da sind je eine LED in Rot, Grün, Blau und ein Mikrocontroller (glaube ich) in dem 5mm Gehäuse verbaut. Die wechseln ihre Farben durch und es sieht super aus.

Die angegebenen 30mA sind, wie bei allen LEDs, das ultimative Maximum. Ich habe sie erstmal mit 10mA getestet. Alles funktioniert perfekt, aber sie sind mir für meinen Zweck zu hell.

Ich hab auch bereits mit 5mA einen Testanschluss durchgeführt, da passt die Helligkeit und sie wechseln immernoch fehlerfrei durch.

Nun kommt (endlich) meine Frage.

Verkürzt die Verwendung mit weniger mA die Lebensdauer des Mikrocontrollers? (Bei Schaltnetzteilen kenne ich das. Nimmst du zu wenig, dann gehen die drauf.)

Sorry, für den langen Text. Ich wollte bereits alle möglichen Rückfragen klären.

Computer, Technik, Elektronik, Mikrocontroller, LED, RGB, Technologie
Arduino LED "gleichmäßiger" pulsieren lassen?

Bei dem einfachen Sketch für eine pulsierende LED ist es immer so, dass die helligkeit am Anfang sehr schnell ansteigt, dann immer langsamer, sodass es aussieht als würde sich die helligkeit fast gar nicht verändern? Hat jemand eine idee wie man das lösen könnte?

Meine idee wäre gewesen, die zählervariable in der Schleife, die die helligkeit angibt und immer mit 1 addiert wird, jedes mal zu quadrieren, oder eben hoch *irgendeine andere zahl*, sodass die helligkeit nach oben hin immer schneller ansteigt, aber es so aussieht als würde sie gleichmäßig ansteigen.

Das funktioniert aber irgendwie nicht. Wenn ich die variable in int speichere und z.b. hoch 2 rechne, geht es, das ist aber zu schnell. Mit dezimalzahlen gibt es immer eine fehlermeldung.

Wenn ich die Variable in int speichere:

Test:27:26: error: invalid operands of types 'int' and 'double' to binary 'operator^'
   helligkeit = helligkeit^1.5;
                ~~~~~~~~~~^~~~
exit status 1
invalid operands of types 'int' and 'double' to binary 'operator^'

Das könnte wegen den 1,5 sein. Aber wenn ich die Variable in double speichere:

Test:27:26: error: invalid operands of types 'double' and 'double' to binary 'operator^'
   helligkeit = helligkeit^1.5;
                ~~~~~~~~~~^~~~
exit status 1
invalid operands of types 'double' and 'double' to binary 'operator^'

Es ändert sich nichts. Wo liegt hier der Fehler?

FROHE WEIHNACHTEN!!!
Computer, Technik, Elektronik, programmieren, Elektrotechnik, Mikrocontroller, Arduino, LED, Technologie
Signalverarbeitung mit dem Mikrocontroller?

Schönen Sonntag euch!

Ich hätte eine Frage. Hänge leider schon seit einer Woche dran und suche dringend nach einer Antwort. Ich bin dabei drahtlos per Funk(433mhz) Signale von einem Mikrocontroller (Sender) zu einem anderen Mikrocontroller (Empfänger) zu versenden. Das Senden klappt wunderbar und ich habe alles per Oszi überprüft, das Empfangen jedoch ist eine Katastrophe.
Das Problem, ich kann keine Libaries von Arduino und co verwenden, muss also alles selber in C schreiben. Wenn etwas gesendet wird ist das Signal High, wenn nicht dann Low(Ist also ein Rechtecksignal).
Hier mein Pseudocode:

(Der Sender sendet dauerhaft 4100uS lange High Signale(senden) mit kurzen low unterbrechungen(nicht senden)

In einer Endlosschleife starte ich zuerst einen Timer der in mikroSekunden zählt

jetzt kommt eine leere While Schleife die solange nichts macht wie das Signal High ist(es wird etwas empfangen)

wenn die Whileschleife vorbei ist kommt eine if, die wenn der timer größer 4000 und kleiner 4200 ist( das eigentliche Signal ist ja 4100 uS) . Wenn diese if zutrifft soll ein Licht angehen.

Leider funktioniert es nicht und das Licht geht ab und zu mal an machmal aber auch nicht. wäre cool könnte jemand helfen und mir sagen was ich falsch mache oder einen anderen Vorschlag hat.

Danke im Vorraus!

Computer, Technik, programmieren, Elektrotechnik, Mikrocontroller, Datenverarbeitung, Informatik, Technologie, Signal
Welcher Sensor für Arduino Uno misst G-Kräfte?

Guten Abend Zusammen,

Im Rahmen eines Abschlussprojektes bin ich gerade dabei, die Karosserie eines ferngesteuerten Autos zu verbessern. Verbessern bedeutet, dass der Spoiler sich den Fahrbedingungen anpassen soll. Wenn man bremst, soll sich dieser z.B aufstellen. Wenn man Beschleunigt oder steht, soll der Spoiler wieder in die Ursprüngliche Position wechseln. Wie das alles Funktionieren soll steht fest, es fehlt wirklich nur noch dieser Sensor. Alles andere ist schon ready To go.

Mir ist natürlich klar, dass das bei einem Spielzeugauto nicht viel ausmacht, darum geht es auch nicht. Meine Frage ist, ob Ihr eventuell Sensoren kennt, welche diese Kräfte messen können. Diese Sensoren müssen mit dem Arduino uno kompatibel sein.

Zuerst habe ich mir den Sensor mit der Bezeichnung "GY-61" zugelegt, welcher sich aber als ungeeignet herausstellt, da dieser lediglich Veränderungen seiner Lage messen kann. Da der Sensor am Ende statisch verbaut werden soll und ich einen richtigen Gyrosensor brauche und keinen Winkelmesser, fällt dieser leider raus.

Meine Frage an Euch: Kennt Ihr eventuell Sensoren, welche mir bei der Lösung helfen könnten? Ich habe bereits einen weiteren Sensor mit der Bezeichnung "MPU-6050" gefunden, welcher passen könnte. Jedoch wollte ich mich zuerst ein ein Paar erfahrene Nutzer wenden bevor ich wieder einen Sensor kaufe, rumprobiere und dieser am Ende wieder nicht funktioniert. Leider stehe ich auch unter Zeitdruck, da das Projekt bis Ende November fertig sein muss.

Ich freue mich sehr auf Euren Ideen, Erfahrungen und Tipps! :)

Mikrocontroller, Arduino, Sensoren, G-Kräfte, g-kraft, Arduino Uno
Serielle Kommunikation zwischen ESP32 und Raspberry Pi mit Java?

Hey liebes Forum,

Ich habe einen ESP32 der durchgehend mit einer Baud Rate von 115200 jede 500 Millisekunden eine Nachricht mit Serial.println("Test") schickt. (Das geht!)

Auf meinem Raspberry Pi läuft das Ubuntu Server Betriebssystem LTS und es ist Java JDK17 (LTS) installiert. Ich kann also ganz normal Java Programme hier laufen lassen.

Der ESP32 ist mit dem Raspberry Pi über die Serielle Schnittstelle verbunden also über GPIO14/GPIO15 und Ground. Nicht über USB sondern über RX/TX/Ground. (Ja ich habe RX TX Ground richtig angeschlossen: RX geht auf TX, TX geht auf RX), Beide Grounds von den 2 Geräten sind miteinander verbunden.

Jetzt würde ich gerne am Raspberry Pi ein Java Programm laufen lassen, dass durchgehend auf die Serielle Schnittstelle hört und diese "Test" Nachrichten, die vom ESP32 losgeschickt werden, empfängt. Die Test Nachrichten sollen also am Raspberry Pi ausgegeben werden bzw. im Java Programm gespeichert werden. Ich will nämlich in Zukunft nicht nur Test verschicken sondern richtige Daten und die dann am Raspberry Pi mit Java weiterverarbeiten.

Ich habe lange im Internet nach einer Lösung gesucht, aber nichts gefunden. Nur Lösungen mit Python scripts. Ich würde aber gerne Java verwenden. Ich bin auch schon auf pij4 gestoßen, das klappt aber auch nicht. Da gibts Library Error wie zum Beispiel: java.lang.UnsatisfiedLinkError: oder wrong ELF class: ELFCLASS32 (Possible cause: can't load ARM .so on a AARCH64 platform)

Welche Library eignet sich am besten bzw. muss ich noch was anderes am Raspberry Pi konfigurieren, damit das ganze geht.

Allgemein: Wie kann ich am Raspberry Pi mit Java, die Daten, die vom ESP32 weggeschickt wurden über die Serielle Schnittstelle empfangen?

Bild zum Beitrag
Computer, Technik, Elektronik, Java, Mikrocontroller, Arduino, Technologie, Serielle Schnittstelle, Raspberry Pi, ESP32
Wie programmiere ich ein STM32 Microcontroller?

Guten Abend miteinander,

Ich bin leider kompletter Anfänger auf in dem Bereich embedded System, sollte aber im dualen Studium (gerade begonnen, Praxisphase) einen STM32F4-Discovery (dieses Modell: http://blog.tkjelectronics.dk/wp-content/uploads/2012/04/STM32F4-DISCOVERY_Board.jpg ) mit einem Arm Cortex M4 Prozessor einrichten und etwas darauf rumprogrammieren. Jedoch scheitert es dabei leider schon etwas beim "zum laufen bekommen".

Ich bin kein absoluter Anfänger im Bereich der Informatik, aber in diesem Gebiet schon. Momentan sieht es im Betrieb im Bezug auch fachliche Ansprechpersonen etwas schlecht aus, da coronabedingt wenige da sind und etwas Stress herrscht. Grundsätzlich aktuell nicht tragisch, da ich mir selbst viel beibringen kann, aber bei der Aufgabe habe ich gerade etwas Probleme.

Ich weiß schon nicht welche IDE das unterstützt und halbwegs gut ist, zudem kann ich nicht einfach rumprobieren, da ich jedesmal Lizenzquatsch klären und dann in eine andere Abteilung zu einem Adminstator laufen muss um etwas zu installieren. Visual Studio Code mit PlatformIO scheint es zu supporten, aber, obwohl ich den STLink Treiber installiert habe, wird das Gerät von PlatformIO nicht erkannt (vom PC schon).

Kann mir jemand Ratschläge geben, wie ich das einrichte? Also welche IDE muss ich nehmen und was sind die wichtigen Schritte im Prozess?

Computer, Technik, programmieren, Mikrocontroller, Embedded, Embedded Systems, Informatik, Technologie
Ich hab ein paar Fragen zu Tpm Sicherheit?

Ich habe Tpm nie benutzt, seit Windows 11 hab ich mich dazu durchgelesen.

Erstens ist Tpm nur für Windows?

Zweitens ist es sicher?

Denn ich hatte bis jetzt nie Probleme ich verwende auch kein Bit locker sondern Veracrypt...

Ich habe gelesen das Tpm Gehackt werden kann, und entschlüsselt, dann ausgelesen werden kann.

Drittens hat Microsoft, nicht selber dann ein Backdoor, zu dieser Tpm Verschlüsselung um alles auszulesen?

Viertens ich habe es jetzt mal zu Testzwecken aktiviert, jedoch war Windows schon Installiert. Was ich weiß aktiviert sich Tpm erst bei Installation, ist das richtig?

Kann ich ihn also ohne zu löschen einfach wieder Deaktivieren? Oder sind jetzt schon Daten drauf gespeichert? Also wenn Windows schon installiert war und Nachträglich Tpm aktiviert wurde?

5. Ist mein System nicht sicherer wenn ich es ohne Microsoft Konto Nutze, keine Cache und Logdatein gespeichert sind, ich meine zumindest mehrmals Täglich gelöscht. Damit meine ich die gesamten Windows Logs über die Power Shell. Ich jeden Browser ohne Verlauf nutze, und beim beenden Alles gelöscht wird. Cookies etc. Eine Router nutze eine Internet Security Nutze. Ein Standart Konto Nutze, das administrative Passwort geschützt ist. Vpn nutze.

Oder wäre es einfach gesagt sicher, Tpm dazu zu benutzen und dem ganzen zu vertrauen.?

Oder ist es eh hinfällig mit Veracrypt?

Bitte erklärt mir das Genau, ich habe Standart gemäss kein Vertrauen zur Privatsphäre und Windows...

Und da man es wohl doch nicht für Windows 11 benötigt, sondern man halt dann nur eine Warnmeldung bekommen wird das der Punkt nicht sicher isr.

Überlegte ich einfach so ohne Tpm weiter zu fahren wie ich es schon immer bin...

Ausser es erklärt mir hier wer genau das dieses nicht nur für Microsoft gedacht ist, und es sicher ist als ohne, mit dem Maßnahmen die man so schon so sicher wie möglich in Windows stellen kann.

PC, Computer, Windows, Microsoft, Technik, Hack, Sicherheit, Hardware, Elektrotechnik, Mikrocontroller, Rechner, EDV, Embedded, Embedded Systems, Hacker, Hacking, Kryptographie, Kryptologie, Security, Technologie, TPM, encryption, VeraCrypt, Windows 11, TPM 2.0
Arduino funktioniert nicht?

Hallo zusammen,

Ich wollte eben wieder etwas mit meinem Arduino machen. Um genau zu sein, einen einfachen 9g Servo steuern.

Allerdings lässt sich nichts auf den Arduino schreiben.

Com-Anschlussnummer habe ich jetzt auch schon mehrmals geändert. Auchanders Kable, anderen USB Port usw. Hat aber nichts gebracht.

(Was mir übrigens auch noch aufgefallen ist: Die grüne LED auf dem Arduino leuchtet durchgehend und blinkt nicht beim versuch ihn zu beschreiben.)

Bekomme immer diese Fehlermeldung:

avrdude: ser_open(): can't open device "\\.\COM3": Das System kann die angegebene Datei nicht finden.




avrdude: ser_drain(): read error: Das Handle ist ung�ltig.




avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Das Handle ist ung�ltig.




avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Das Handle ist ung�ltig.




Der ausgewählte serielle Port 
 ist nicht vorhanden oder das Board ist nicht angeschlossen
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Das Handle ist ung�ltig.




avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Das Handle ist ung�ltig.




avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Das Handle ist ung�ltig.




avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Das Handle ist ung�ltig.




avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer


Wäre sehr dankbar, wenn mir jemand helfen könnte.

Computer, Software, Microsoft, Programm, Netzteil, Hardware, Elektronik, programmieren, Elektrik, Mikrocontroller, Gaming, Cplusplus, Motor, Arduino, CPP, Visual Studio, Servo, Arduino Uno, Arduino IDE
Schaltungsanalyse: Operationsverstärkerschaltung und Transistorschaltung?

Schönen guten Tag,

ich habe die Aufgabe erhalten, die Funktion einer Operationsverstärkerschaltung und einer Transistorschaltung mit maximal 4 Sätzen (2. Sätze für eine Schaltung) zu beschreiben.

Die Beiden Schaltungen:

Meine Analyse:

Das rechteckförmige Alarmsignal wird in der ersten Schaltung durch einen Spannungsteiler angepasst, und danach von einen invertierenden Operationsverstärker verstärkt.

(Frage: Ist trotzdem eine Verstärkung vorhanden, wenn als Ausgangssignal - 0,1 ... + 0,1 angegeben ist? Da wir als Eingangsspannung 0..5 V anliegen haben. Oder hat einfach der Spannungsteiler die Eingangsspannung geringer als ein Eingangssignal von - 0,1... + 0,1 angepasst. Und der Operationsverstärker das Eingangssignal bis hin zu -0,1... + 0,1 verstärkt? )

Der Arbeitspunkt des Bipolaren Transistors einer Emitterschaltung, wird anhand des Spannungsteilers eingestellt, verstärkt und als ein High-Pegel zum Lautsprecher ausgegeben.

Der Lautsprecher liegt sobald der Kondensator C1 voll aufgeladen ist an Spannung an.

Ist meine Funktionsanalyse mit max. 4 Sätzen in Ordnung?

Ich habe ebenfalls noch eine weitere Frage: Welche Bedeutung haben die 2x 15 V Pins bei der 2. Schaltung?

Danke für die Unterstützung.

Bild zum Beitrag
Computer, Technik, Elektronik, Elektrotechnik, Mikrocontroller, Spannung, Physik, Schaltung, Technologie, Operationsverstärker, Transistor, Auto und Motorrad
Arduino Delay für eine Sekunde?

Hallo, ich wollte eine Uhr für einen Display programmieren und diese mit einer Fernbedinung ansteuern. Nur habe ich ein Problem, meine Uhr ist etwas langsamer als eine normale Uhr (Atomuhr). Obwohl ich einen Delay von 1000 habe.

ich bin im Besitz des Arduino Elegoo Mega 2560

Falls es interessant ist, kopiere ich hier den kompletten Code:

#include <LiquidCrystal.h>

#include "IRremote.h"

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

int offTimer;

int onTimer;

int s=15; //sekunden

int m=49; //minuten

int h=19; //stunden

int tag=3; //tage

int monat=6; //monate

int jahr=2018; //Jahr

int receiver = 6;

int lcdsize[] = {16, 2};

IRrecv irrecv(receiver);    

decode_results results;    

void translateIR() // takes action based on IR code received

// Beschreibt Remote-IR-Codes

{

 switch(results.value)

 {

 case 0xFFA25D: onTimer++; offTimer=0; break;

 case 0xFFE21D: offTimer++; onTimer=0; break;

 case 0xFF629D: Serial.println("VOL+"); break;

 case 0xFF22DD: Serial.println("FAST BACK");   break;

 case 0xFF02FD: Serial.println("PAUSE");   break;

 case 0xFFC23D: Serial.println("FAST FORWARD");  break;

 case 0xFFE01F: Serial.println("DOWN");   break;

 case 0xFFA857: Serial.println("VOL-");   break;

 case 0xFF906F: Serial.println("UP");   break;

 case 0xFF9867: Serial.println("EQ");   break;

 case 0xFFB04F: Serial.println("ST/REPT");   break;

 case 0xFF6897: Serial.println("0");   break;

 case 0xFF30CF: Serial.println("1");   break;

 case 0xFF18E7: Serial.println("2");   break;

 case 0xFF7A85: Serial.println("3");   break;

 case 0xFF10EF: Serial.println("4");   break;

 case 0xFF38C7: Serial.println("5");   break;

 case 0xFF5AA5: Serial.println("6");   break;

 case 0xFF42BD: Serial.println("7");   break;

 case 0xFF4AB5: Serial.println("8");   break;

 case 0xFF52AD: Serial.println("9");   break;

 case 0xFFFFFFFF: Serial.println(" REPEAT");break; 

 default:

   Serial.println(" other button  ");

 }

}

void setup() {

irrecv.enableIRIn(); // Startet den Empfänger

lcd.begin(lcdsize[0], lcdsize[1]);

}

void loop() {

 if (irrecv.decode(&results)) // Haben wir ein IR-Signal erhalten?

 {

   translateIR();

   irrecv.resume(); // Erhalte den nächsten Wert

 } 

 delay(990);

 lcd.clear();

 lcd.setCursor(0, 0);

 lcd.print("----");

 if(h<10){

 lcd.print("0");

 }

 lcd.print(h);

 lcd.print(":");

 if(m<10){

 lcd.print("0");

 }

 lcd.print(m);

 lcd.print(":");

 if(s<10){

 lcd.print("0");

 }

 lcd.print(s);

 lcd.print("----");

 lcd.setCursor(0, 1);

 if(tag<10){

 lcd.print("0");

 }

 lcd.print(tag);

 lcd.print(".");

 if(monat<10){

 lcd.print("0");

 }

 lcd.print(monat);

 lcd.print(".");

 lcd.print(jahr);

 s++;

 if(s>=60){

 m++;

 s=0;

 }

 if(m>=60){

 h++;

 m=0;

 }

 if(h>=24){

 tag++;

 h=0;

 }

 if(tag==31&monat==4){

 monat++;

 tag=1;

 }

 if(tag==31&monat==6){

 monat++;

 tag=1;

 }

 if(tag==31&monat==9){

 monat++;

 tag=1;

 }

Ab hier kommen noch ca. 40 weitere Zeilen.

Mikrocontroller, Arduino, Delay
Könnt ihr mir den elektrischen Schaltplan erklären?

Hallo liebe Community,

ich wollte ein Projekt starten, undzwar eine Art Roboterspinne bauen. Ich bin im Besitz eines 3D Druckers, sodass die mechanischen Teile (noch) nicht das Problem darstellen. Das größte Problem liegt bei mir in der Elektronik, weil ich nur sehr schwache elektrotechnische Kenntnisse habe.

Könnt ihr helfen diesen Schaltplan zu erklären wo ich was anschließen muss, damit ich mir ein besseres Bild von der Sache machen kann?

Diese Bauteile liegen bei mir vor und müssten auch so im Schaltplan vorhanden sein:

  • Arduino Pro Mini Mikrocontroller
  • 3000mAh Lithium Batterie (DC 12300)
  • 12V Niedervolt Steckverbindung mit 3 Lötfahnen
  • DC/DC Voltwandler 12V/5V - 3A Output
  • 1 taktiler Schalter mit 6 Ein und Ausgängen (Lage im Schaltplan bekannt)
  • 680 Ohm 1/4 Watt 5% Wiederstand (kann ich im Schaltplan sehen)
  • 3mm blaue Led (Anschlussrichtung bereits bekannt)
  • 5x7cm Lochrasterplatine
  • 12 SG90 9g Servomotoren
  • Männliche und weibliche Stiftleiste

Nun meine Fragen: Wo muss ich die 5V anschließen und wo GND (Ground)? So wie ich das verstanden habe ist 5V + und GND -. Aber an welches Bauteil muss ich die Verbindung explizit anschließen? Sogut wie alle Bauteile weisen diese Verbindung auf.

Was bedeutet dieses Symbol bei J1? Konnte dazu nichts näheres finden und was muss ich bei dieser Verbindung besonders beachten?

Wie schliesse ich den Power Jack (Niedervolt Steckverbindung) richtig an? Was bedeutet IN_GND? Ich habe ja nur die 3 Lötfahnen und weiß nicht wie ich das verbinden soll.

COXA, FEMUR, TIBIA und JP sind alles Stiftleistenverbindungen richtig?

Ich wäre euch sehr sehr dankbar wenn ihr mir helfen würdet!

Bild zum Beitrag
Elektrotechnik, Mikrocontroller, Arduino, Elektriker, schaltplaene, Stromlaufplan

Meistgelesene Fragen zum Thema Mikrocontroller