🇺🇦 Stand with Ukraine 🇺🇦

Blog

This is a private homepage... ;)

My Retro Gamepad Collection

All my gampads in buying order from left to right

All my gamepads in buying order from left to right. I really like the wired NES controller at the left but wireless is more comfortable. The 4 button 8BitDo NES controller next to the left one ist very nice but Bluetooth has more latency then 2.4GHz controllers. I use this one with my Android devices when traveling. The two SNES 2.4GHz controllers in the middle are in my livingroom connected to a RaspberryPi running Emulationstation for playing on my TV. The two 2.4GHz controllers at the right are in my office connected to my PC. My favorite is the SNES controller with the purple buttons. Best quality are the 8BitDo controllers but they are more expensive. All of these controllers are very nice to play with. I prefer 2.4GHz controllers because they are easy to configure with RetroPie and Emulationstation. Bluetooth on a RaspberryPi sucks in many ways. More latency, more power consumption and also harder to configure.

Read more

Arduino Water Sensor for Houseplants

This is just a very minimal example on how to use these kind of sensors. I just read a value from an analog pin every 2 seconds and print it out to serial.

These sensors are available very cheap online and are easy to use... So, now my plants go online... :)

Arduino Water Sensor For Houseplants

My code:

const int analogIn = A0;  int sensorValue = 0;  void setup() {   Serial.begin(9600); }  void loop() {   sensorValue = analogRead(analogIn);   Serial.print("Sensor: ");   Serial.println(sensorValue);   delay(2000); }

And now to something completely... Need to learn how to add a ground plane in Eagle... ;)

Arduino 3.3V BMP180 I²C Pressure Sensor

I got a BMP180 pressure sensor today and gave it try. It was very easy to get it running using some free libraries from the web.

Arduino 3.3V BMP180 I2C Pressure Sensor

Don't wonder about the fat green socket where the BMP180 is inserted. I use this normally for attaching IC's to my breadboard and making them easily removeable without breaking stuff. IC's could sometimes be hard to remove from a breadboard, especially when the breadboard is unused... ;)

Since the BMP180 is an I²C device it ist very easy to connect it to the Arduino. Just be sure to add pull-up resistors to SCL and SDA. I am using 1K resistors and everything works fine.

Also be sure what kind of breakout board you have. I am using a very cheap model without voltage regulation so mine needs to be driven by a 3.3 Volt Arduino. If you want to drive this with a 5 Volt Arduino you will need to make use of a logic level converter. There are very nice breakout boards available with voltage regulation on-board! Take a look at the link below.

My code:

#include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BMP085_U.h>  Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);  void setup(void) {   Serial.begin(9600);   Serial.println("Arduino BMP180 Pressure Sensor");   Serial.println("");   bmp.begin(); }  void loop(void) {   sensors_event_t event;   bmp.getEvent(&event);   if (event.pressure)   {     Serial.print("Pressure: ");     Serial.print(event.pressure);     Serial.println(" hPa");   }   else   {     Serial.println("Sensor error");   }   delay(1000); }

Links:

Arduino PCF8575 8xLED LM35 Thermometer

Arduino PCF8575 8xLED LM35 Thermometer

My code:

#include <Wire.h>  // Set I2C address int address = 0x20;  int samples = 2; int collectDelay = 1000; int ledPin = 13; int tempPin = 0;  float tempC = 0;  void setup() {   pinMode(ledPin, OUTPUT);   Wire.begin();   pf575_write(word(B11111111,B11111111));   delay(200);   pf575_write(word(B00000000,B11111111));   delay(200);   pf575_write(word(B11111111,B11111111));   delay(200);   pf575_write(word(B00000000,B11111111));   delay(200);   pf575_write(word(B11111111,B11111111));   delay(1000); }  void loop() {   tempC = 0;   for(int i = 0; i <= (samples - 1); i++) {     tempC = tempC + ((5.0 * analogRead(tempPin) * 100.0) / 1024.0);     digitalWrite(ledPin, HIGH);     delay((collectDelay / 2));     digitalWrite(ledPin, LOW);     delay((collectDelay / 2));   }   tempC = tempC / (float)samples;   if(tempC > 21) {     pf575_write(word(B11111110,B11111111));   }   if(tempC > 23) {     pf575_write(word(B11111100,B11111111));   }   if(tempC > 25) {     pf575_write(word(B11111000,B11111111));   }   if(tempC > 27) {     pf575_write(word(B11110000,B11111111));   }   if(tempC > 29) {     pf575_write(word(B11100000,B11111111));   }   if(tempC > 31) {     pf575_write(word(B11000000,B11111111));   }   if(tempC > 33) {     pf575_write(word(B10000000,B11111111));   }   if(tempC > 35) {     pf575_write(word(B00000000,B11111111));   } }  void pf575_write(uint16_t data) {   Wire.beginTransmission(address);   Wire.write(highByte(data));   Wire.write(lowByte(data));   Wire.endTransmission(); }

Pages

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Page generated at: Oct 15, 2025 (CEST) using Jekyll & xw3 on GNU/Linux
NULL
Powered by: NULL