Mikrocontroller – die neusten Beiträge

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

Spezieller IC gesucht und RGB-Led Farbe ändern?

Guten Abend.

Ich wollte mir aus einigen gesammelten Monster-Energy-(Getränke)-Dosen eine kleine "Lichtshow" basteln. Ich dachte mir das ich die Dosen aneinander stelle und die benötigen Kabeln dann an eigens hierfür gebohrte Löcher von Dose zu Dose führe. Ansteuern möchte ich die LED's gerne per IC, oder ähnlichem, in dem ich ein Programm schreiben kann um die LED's anzusteuern. Ich möchte gerne das dieser IC dafür sorgt, das sich die Farben der LED's in gleitendem Übergang durch das Farbspektrum "durchwühlen". Wenn möglich wäre es auch ziemlich cool, wenn zuerst die erste LED beispielsweise langsam in Blau übergeht, und dann erst kurz danach die zweite, dann die dritte, etc. Das sozusagen eine "Welle" entsteht. Eine andere Überlegung von mir wäre es gewesen, das man die LED's beispielsweise per Klinkenstecker oder ähnlichem an eine Musikquelle stecken kann, sodass man dann sowohl die Musik hört, als auch sieht wie die LED's ihre Farben "passend" zur Musik verändern.

Wäre das machbar und wenn ja, wie? Ich hab zwar einige Kenntnisse in der Elektrotechnik, aber mit RGB-LED's und der Programmierung und Nutzung von IC's hab ich mich noch nicht so viel auseinandergesetzt, daher wäre es sehr nett wenn jemand mir das erklären könnte, bzw. mir ein gutes Tutorial empfehlen könnte.

Vielen Dank für eure Hilfe, LG Bluedragon1

Computer, Technik, Lampe, Elektronik, Licht, Elektrotechnik, Mikrocontroller, IC, LED

Kann ich ein Arduino (nur AVR Atmega328P) mit externer Stromquelle (5VDC) und USB-5V gleichzeitig betreiben?

Hi liebe Community,

beim Designen einer Platine mit einem AVR Atmega328P Controller + FTDI bin ich auf folgende Fragen/Probleme gestoßen:

Da die Komponenten etwa 2-3 Ampere ziehen, kann die Platine nicht nur mit dem Rechner-USB versorgt werden. Das Netzteil soll ein gewöhnlich über Amazon/eBay erhältliches 5V-3A-Netzteil sein (z.B. http://www.amazon.de/Netzteil-Ladegerät-Steckernetzteil-Klinkenhohlstecker-Elektronik/dp/B00H7XIYGU/ref=sr_1_1?ie=UTF8&qid=1439241252&sr=8-1&keywords=5v+3a)

  • Kann ich den 5V-Pin mit dem 5V Ausgang eines geregelten DC-Netzteils UND dem USB-Port eines Computers verbinden, gleichzeitig? (Beide GND sind auch miteinander verbunden)
  • Würde es zu Problemen kommen wenn ich mit angeschlossenem Netzteil die Platine NACHTRÄGLICH mit dem Computer-USB verbinde?
  • Würde es zu Problemen kommen wenn ich es andersrum machen würde (USB zuerst, Netzteil nachträglich)?

Ich habe im Netz was von Ground Loop gelesen. Ist das Problem hier vorhanden? Wenn ja, wie könnte ich es lösen?

Im Anhang mein Platinendesign (Platine ist groß, 28 x 10 cm). Zu sehen ist der Power-Jack Connector und die USB-Buchse. Beide sind über großflächige Ground und VCC-Planes miteinander verbunden; die Planes sind verbunden mit allen ICs der Platine (Atmega328P, WS2812b, 74HC595 usw.).

Ziel wäre, die Komponenten in alle drei möglichen Konfigurationen nicht zu schaden :-)

Dankeschön im Voraus für eine Antwort!

Viele Grüße,
Kesselwagen

Bild zum Beitrag
Computer, Netzteil, Elektronik, Strom, programmieren, USB, Elektrotechnik, Mikrocontroller, Spannung

Widerstandsmessung über Spannungsteilerverhältnisse

Hallo,

ich möchte ganz ohne weitere Bauteile einen Widerstand mit einem Mikrocontroller messen.

Der Mikrocontroller verfügt über einen eingebauten Referenzspannungsgenerator der aus einer Kette von Widerständen besteht. Den kann ich auf einen Portpin schalten, da den Widerstand anlegen und die Spannung am Portpin messen.

Jetzt möchte ich den Wert des Widerstandes in Ohm herausfinden in dem ich bei verschiedenen Einstellungen der Referenzspannungsquelle die Spannung am Portpin messe.

In dem µC sind 8R, dann 16x R und zum abschluß wieder 8R drin wobei der letzte R überbrückt werden kann. Ich kann auf einen der 16 Punkte zwischen den R umschalten. Die R sind laut Hersteller alle identisch, R an sich ist aber unbekannt was daran liegt, dass die Laserabgeglichen werden um die alle gleich zu machen, dafür haben die dann von IC zu IC verschiedene Werte. Das reicht um die Referenzspannung sehr genau schalten zu können, dafür ist R eben unbekannt.

Jetzt möchte ich in dem Programm den gesuchten, außen angeschlossenen Widerstand berechnen in dem ich die Widerstandskette umschalte und bei verschiedenen einstellungen die Spannung am gesucten Widerstand messe.

 VCC
  +
  |
  |
 .-.
 | | 8R
 | |
 '-'
  |
  |
 .-.
 | |
 | | R
 '-'
  |                 .------.
  o-----------------o      |
  |             1   |      |
 .-.                |      |
 | |                |      |
 | | R              |      |
 '-'                |      |
  |              2  |      |
  o-----------------o      |
  ………………………………………………|…………………………………………
  o-----------------o      |
  |          14     |      |
 .-.                |      |
 | |                |      o---o---|
 | | R              |      |       |
 '-'                |      |       |
  |          15     |      |      .-.
  o-----------------o      |      | |
  |                 |      |      | |
 .-.                |      |      '-'
 | |                |      |       |
 | | R              |      |       |
 '-'                |      |      ===
  |          16     |      |      GND
  o--------o--------o      |
  |        |        '------'  R unbekannt
 .-.       |
 | | 8R    o |
 | |         |=|
 '-'       o |
  |        |
  |        |
 ===      ===
 GND      GND

Ich hatte da schon mit Formeln hantiert und ein Programm geschrieben, da kommt aber "alles und nichts" bei raus, die Ergebnisse sind völlig unbrauchbar. Vermutlich wie die Formel zu kompliziert ist und die Rundungsfehler extrem werden.

Hat einer eine Idee wie man das in einfachen Formeln und/oder Programmschritten (ich benutze hier C) möglichst ohne Fließkomma und mit wenigen Multiplikationen und divisionen hin kriegt?

Elektronik, Elektrotechnik, Mikrocontroller, messen, Widerstand

Meistgelesene Beiträge zum Thema Mikrocontroller