Schlagwort-Archive: Arduino

BitBastelei #272 – Arduino als PIC-Programmiergerät

BitBastelei #272 - Arduino als PIC-Programmiergerät

(329 MB) 00:18:11

2018-02-11 11:00 🛈

AVR vs. PIC – früher eine Relegionsfrage der beiden Mikrocontroller-Communities, heute nur noch selten relevant. Es sei denn, man bekommt als AVR-Mensch einen PIC-Controller vor die Nase und hat kein passendes Programiergerät.

Links zum Thema

BitBasics – ESP8266 – 0: Einführung

BitBasics - ESP8266 - 0: Einführung

(72 MB) 00:09:53

2018-02-04 11:00 🛈

In dieser Serie werden wir und mit den Grundlagen rund um Arduino und den ESP8266 beschäftigen. Mit dieser Kombination kann man auch als Einsteiger schnell mächtige Mikrocontrollerprojekte umsetzen – egal ob blinkende LED oder IoT-Gerät.

In der Einführung spreche ich kurz über die geplanten Themen und die Unterschiede zwischen dem ESP8266 und den klassischen Arduino-Boards.

Korrekturen

  • 02:05 AVR war die Serie, der Hersteller hieß Atmel

Serie

  • Nächster Teil: folgt

Hardware

Links:

BitBastelei #249 – AD584 Voltage Reference: Reparatur & Arduino-Mod

BitBastelei #249 - AD584 Voltage Reference: Reparatur & Arduino-Mod

(287 MB) 00:32:24

2017-07-30 10:00 🛈

Wieder mal eine Reparatur: Dank verpoltem Ladestecker hat meine AD584-basierte Spannungsreferenz den Geist aufgegeben. Mal schauen, ob wir die wiederbelebt bekommen. Oder wir übertreiben etwas. Oder beides.

BitBastelei #247 – PC-Lüfter per Arduino auslesen und steuern

BitBastelei #247 - PC-Lüfter per Arduino auslesen und steuern

(81 MB) 00:19:34

2017-07-16 10:00 🛈

Lüfter sind laut und nervig – aber auch nicht so ganz unwichtig. Praktischerweise kann man PC-Lüfter recht einfach selbst nutzen. Schauen wir mal, welche Arten von Lüftern es so gibt und wie man diese per Arduino auslesen und steuern kann.

Korrekturen & Hinweise

  • 10:58 OZI und Arduino haben über USB den selben GND
  • 13:22 FALLING wäre bei diesem Signal besser
  • 16:25 Laut Spezifikation sind 21-28kHz zulässig

Links zum Thema

Code

unsigned long last1 = 0;
unsigned long last2 = 0;
unsigned long lasts = 0;
unsigned int dur1 = 0;
unsigned int dur2 = 0;
byte tgt1 = 128;
byte tgt2 = 128;

void setup() {
  Serial.begin(115200);
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(13, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(2), tacho1, FALLING);
  attachInterrupt(digitalPinToInterrupt(3), tacho2, FALLING);

  //Timer 1: Prescaler 0
  TCCR1B = TCCR1B & B11111000 | B00000001;

  analogWrite(9, 128);
  analogWrite(10, 128);
}

void getPwm(byte &val) {
  byte tmp = Serial.parseInt();
  if(tmp > 0) val = map(tmp, 0, 100, 0, 255);
}

void loop() {
  unsigned long cm = millis();

  if(Serial.available()) {
    byte tmp = Serial.parseInt();
    switch(tmp) {
      case 1:
        getPwm(tgt1);
        break;
      case 2:
        getPwm(tgt2);
        break;
    }
  }
  
  if(lasts > cm || (lasts + 1000) < cm) {
    digitalWrite(13, !digitalRead(13));
    Serial.print("Delay1: ");
    Serial.print(dur1);
    Serial.println("µs");

    unsigned long freq = 100000000 / dur1;
    Serial.print("Frequenz1: ");
    Serial.print(freq/100);
    Serial.print('.');
    Serial.print(freq%100);
    Serial.println("Hz");

    freq *= 60;
    freq /= 200;
    Serial.print("RPM1: ");
    Serial.println(freq);

    
    Serial.print("Ziel1: ");
    Serial.print(map(tgt1, 0, 255, 0, 100));
    Serial.println('%');

    
    Serial.print("Delay2: ");
    Serial.print(dur2);
    Serial.println("µs");

    freq = 100000000 / dur2;
    Serial.print("Frequenz2: ");
    Serial.print(freq/100);
    Serial.print('.');
    Serial.print(freq%100);
    Serial.println("Hz");

    freq *= 60;
    freq /= 200;
    Serial.print("RPM2: ");
    Serial.println(freq);

    
    Serial.print("Ziel2: ");
    Serial.print(map(tgt2, 0, 255, 0, 100));
    Serial.println('%');
    
    Serial.println("-----");
    lasts = millis();
  }

  analogWrite(9, tgt1);
  analogWrite(10, tgt2);
}

void tacho1() {
  unsigned long cm = micros();
  dur1 = (cm - last1);
  last1 = cm;
}

void tacho2() {
  unsigned long cm = micros();
  dur2 = (cm - last2);
  last2 = cm;
}

BitBastelei #245f – Haussteuerung mit CAN und Arduino: IO-Module

BitBastelei #245f - Haussteuerung mit CAN und Arduino: IO-Module

(24 MB) 00:10:07

2017-07-02 11:02 🛈

Die vermutlich komplexeste, aber auch leistungsfähigste Variante in aSysBus: IO-Module. Hierbei werden nicht mehr separate Funktionen geschrieben, sondern nur noch Konfigurationen für Adressen und Pins vergeben. Diese werden im EEPROM abgelegt und können – ganz ohne dem Arduino neu zu programmieren – im Betrieb geändert werden.

CAN-Bus-Library:
https://github.com/adlerweb/CAN_BUS_Shield
aSysBus-Library:
https://github.com/adlerweb/aSysBus

BitBastelei #245e – Haussteuerung mit CAN und Arduino: Eigene Funktionen anbinden

BitBastelei #245e - Haussteuerung mit CAN und Arduino: Eigene Funktionen anbinden

(14 MB) 00:08:05

2017-07-02 11:01 🛈

Über „Hooks“ kann man in aSysBus eigene Funktionen mit einem Filter verbinden. Statt selbst das aussortieren der Pakete programmieren zu müssen kann man hier diese Aufgabe der Library übertragen. Trifft später ein Paket ein, welches den angegebenen Daten entspricht, wird die eigene Funktion aufgerufen.

CAN-Bus-Library:
https://github.com/adlerweb/CAN_BUS_Shield
aSysBus-Library:
https://github.com/adlerweb/aSysBus

BitBastelei #245d – Haussteuerung mit CAN und Arduino: Einfacher Knoten

BitBastelei #245d - Haussteuerung mit CAN und Arduino: Einfacher Knoten

(15 MB) 00:09:45

2017-07-02 11:00 🛈

Jetzt geht es ans programmieren: Die Variante „simple“ beschränkt sich auf das nötigste: Den Knoten online bringen, Pakete senden und Empfangen. Programmlogik kann man mit wenigen Befehlen in Arduino selbst entwickeln. Diese Methode eignet sich daher für alle, welche individuelle Steuerungen bauen.

CAN-Bus-Library:
https://github.com/adlerweb/CAN_BUS_Shield
aSysBus-Library:
https://github.com/adlerweb/aSysBus

BitBastelei #245c – Haussteuerung mit CAN und Arduino: Installation & Hardware

BitBastelei #245c - Haussteuerung mit CAN und Arduino: Installation & Hardware

(24 MB) 00:05:43

2017-07-02 10:31 🛈

Selbst eine Haussteuerung mit Arduino bauen? Kein Problem. Hier schauen wir wie wir die nötigen Libraries installieren und für wenig Geld passende Hardware zusammenstecken können.

CAN-Bus-Library:
https://github.com/adlerweb/CAN_BUS_Shield
aSysBus-Library:
https://github.com/adlerweb/aSysBus

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2017/07/mcparduino-300×169.png

BitBastelei #245b – Haussteuerung mit CAN und Arduino: Der aSysBus

BitBastelei #245b - Haussteuerung mit CAN und Arduino: Der aSysBus

(19 MB) 00:09:21

2017-07-02 10:30 🛈

Nach langem Gebastel ist er da: Der Arduino System Bus (aSysBus). Schauen wir mal, was dahinter steckt, wie die Library aufgebaut ist und was alles unterstützt wird.

CAN-Bus-Library:
https://github.com/adlerweb/CAN_BUS_Shield
https://github.com/Seeed-Studio/CAN_BUS_Shield
aSysBus-Library:
https://github.com/adlerweb/aSysBus

BitBastelei #245a – Haussteuerung mit CAN und Arduino: Was ist Haussteuerung?

BitBastelei #245a - Haussteuerung mit CAN und Arduino: Was ist Haussteuerung?

(23 MB) 00:10:23

2017-07-02 10:00 🛈

Nach langer Zeit geht es mal wieder um Haussteuerung: Ich habe mein System nun soweit auf Arduino portiert und online gestellt. Aber schauen wir erst mal was überhaupt Haussteuerung ist, warum man eine solche haben möchte, was dagegen spricht und welche Konzepte es gibt.