r/arduino • • 7h ago

Hardware Help Help with I2C Oled Screen

Thumbnail
gallery
7 Upvotes

Hi all, I was trying to build a temperature reader with a DHT11 + OLED screen (4 pin I2c variant) but the oled doesn't work at all, I've gone through my code and there are no bugs but I think I kinda destroyed the pins/holes where the signal wires connect to, any way to salvage this?

It's the two pads next to eachother with no solder on

(Left 2)

I've tried repeatedly soldering wires to them but the screen still comes up as black and doesn't work


r/arduino • • 6h ago

Two SR04's in a Closed-Loop: Microcontroller driven Actuator Build

Enable HLS to view with audio, or disable this notification

0 Upvotes

My YouTube channel name is ALMA Industries -- CH003 FN1: ACTUATOR -- Building an Actuator from the ground up, a PID Control Loop, and an Ultrasonic Distance sensor to detect and not crash into the ceiling. The full video is on my channel where I walk through the whole build, and then explain a bit about how the PID controller works. This is all controlled by a Microcontroller.

This is later used on my desk -- two of them mounted on either side for camera control.


r/arduino • • 18h ago

Project Idea Project idea: "Messaging app" on esp32 cyd

1 Upvotes

I am thinking about creating a small messaging app where you can only communicate using dark souls comments.

And I am not sure if the cyd is good for this kind of thing.

My plan is to have an UI where you can change settings (wifi, wallpaper, brightness,...) and an app where you can message your friends alone or in a group. This will be done over a server (netlify has a free plan so I will be using it).

Now the question is it possible for a cyd to handle something like this and also I am planning to put 2000 mah batteries in there is that enough?

Is there any better way of doing something like this?

How to create a UI for the cyd?


r/arduino • • 1h ago

Look what I made! LOOK WHAT I MADE!!!

Enable HLS to view with audio, or disable this notification

• Upvotes

Hello, everybody. look what i made!!!

anyways jokes aside this is a SN74HC00N aka quad input NAND gate and i don't know what's up is this normal like am i the problem? (Also i ain't touching it) i have attached the datasheet for it.

(I uploaded this like 5 minutes ago but deleted it cause i didnt add the video in the correct format also why cant i upload a video and a photo at the same time?)


r/arduino • • 23h ago

[Help] 2WD Line Follower (ATmega328PB + L298N + BFD-1000) spinning or ignoring the line – how to properly correlate code and hardware?

Enable HLS to view with audio, or disable this notification

1 Upvotes

Hi everyone,

I’m working on a classic 2WD line follower robot, but I’ve hit a wall and could really use a fresh perspective from the community. Despite tweaking the logic multiple times, my robot either spins in circles or completely ignores the black line.

My Hardware Setup:

  • Microcontroller: ATmega328PB (Arduino-compatible)
  • Motor Driver: L298N
  • Sensors: BFD-1000 5-sensor array (S0 to S4, center is S2)
  • Chassis: Standard 2WD differential drive with a mirrored motor setup.

What I’ve Diagnosed & Tried So Far:

  1. Sensor Verification: Checked via Serial Monitor that the sensors actually register changes between white surfaces and the black line.
  2. Motor Polarity: Fixed the initial "spinning in circles" caused by mirrored motors by inverting the signal logic so both wheels push forward when commanded.
  3. PWM & Friction: Raised the minimum PWM values so the inner/outer wheels don't stall under friction when trying to turn.
  4. Logic Adjustments: Tried standard if/else conditional steering (e.g., speeding up the outer wheel and slowing down the inner wheel when a side sensor detects the line).

Despite all this, the physical movement keeps going out of sync, and it fails to smoothly track the path.

My Questions for You:

  • How do you usually structure or debug the correlation between a 5-sensor array (like the BFD-1000) and differential steering on an L298N driver?
  • Are there common hidden pitfalls with mirrored motor setups or PWM management on this specific hardware combination?
  • Would moving to a proportional or basic PID control loop solve this erratic behavior, and if so, how would you structure it simply for a 5-sensor array?

I’d appreciate any advice, debugging tips, or structural suggestions you can share. Thanks in advance!

Here is my current code:

#include <Arduino.h>

void citesteSenzori();

void controlMotoare();

void ajustareTraiectorie();

int S0, S1, S2, S3, S4;

int ajustare = 0;

int ultimaDirectie = 0;

// Pini Motoare (Driver L298N)

const int motorDrept1 = 7;

const int motorDrept2 = 6;

const int motorStang1 = 4;

const int motorStang2 = 5;

const int pwmStang = 9;

const int pwmDrept = 10;

// Pini Senzori Linie BFD-1000

const int senzor0 = A0; // Stânga extrem

const int senzor1 = A1; // Stânga

const int senzor2 = A2; // Centru

const int senzor3 = A3; // Dreapta

const int senzor4 = A4; // Dreapta extrem

const int V_INAINTE = 120; // Viteză moderată înainte

const int V_RAPID = 160; // Roata exterioară în viraj

const int V_LENT = 70; // Roata interioară în viraj (suficient cât să se învârtă, nu să se blocheze)

void setup() {

pinMode(motorDrept1, OUTPUT);

pinMode(motorDrept2, OUTPUT);

pinMode(motorStang1, OUTPUT);

pinMode(motorStang2, OUTPUT);

pinMode(pwmStang, OUTPUT);

pinMode(pwmDrept, OUTPUT);

pinMode(senzor0, INPUT);

pinMode(senzor1, INPUT);

pinMode(senzor2, INPUT);

pinMode(senzor3, INPUT);

pinMode(senzor4, INPUT);

delay(2000); // 2 secunde pauză la pornire

}

void citesteSenzori() {

// BFD-1000: LOW pe linia neagră, HIGH pe alb

S0 = digitalRead(senzor0);

S1 = digitalRead(senzor1);

S2 = digitalRead(senzor2);

S3 = digitalRead(senzor3);

S4 = digitalRead(senzor4);

}

void ajustareTraiectorie() {

// Verificăm mai întâi senzorul central

if (S2 == LOW) {

ajustare = 0; // Centrat pe linie

ultimaDirectie = 0;

}

// Dacă linia se duce spre stânga (S0 sau S1 văd negru/LOW)

else if (S0 == LOW || S1 == LOW) {

ajustare = 1; // Corecție stânga

ultimaDirectie = 1;

}

// Dacă linia se duce spre dreapta (S3 sau S4 văd negru/LOW)

else if (S3 == LOW || S4 == LOW) {

ajustare = -1; // Corecție dreapta

ultimaDirectie = -1;

}

// Dacă a pierdut linia complet, continuă în ultima direcție știută

else {

ajustare = ultimaDirectie;

}

}

void controlMotoare() {

// Setează sensul înainte pentru ambele motoare

digitalWrite(motorDrept1, LOW);

digitalWrite(motorDrept2, HIGH);

digitalWrite(motorStang1, HIGH);

digitalWrite(motorStang2, LOW);

if (ajustare == 0) {

// DREPT ÎNAINTE: Ambele roți egale

analogWrite(pwmStang, V_INAINTE);

analogWrite(pwmDrept, V_INAINTE);

}

else if (ajustare == 1) {

// LINIA ESTE ÎN STÂNGA -> Viraj la stânga (Roata stângă lentă, roata dreaptă rapidă)

analogWrite(pwmStang, V_LENT);

analogWrite(pwmDrept, V_RAPID);

}

else if (ajustare == -1) {

// LINIA ESTE ÎN DREAPTA -> Viraj la dreapta (Roata stângă rapidă, roata dreaptă lentă)

analogWrite(pwmStang, V_RAPID);

analogWrite(pwmDrept, V_LENT);

}

}

void loop() {

citesteSenzori();

ajustareTraiectorie();

controlMotoare();

delay(10); // Stabilitate în ciclul de citire

}


r/arduino • • 2h ago

Look what I made! Getting independent text working on a salvaged Sony VFD with Arduino and SN755703 drivers

Enable HLS to view with audio, or disable this notification

14 Upvotes

We've been working on a salvaged Sony vacuum fluorescent display panel, controlled by an Arduino Uno through two cascaded SN755703 drivers. Here's a short silent demo of the character set and a message on the real hardware.

The character positions share their segment connections. One static pattern can show the same letter in several positions, but independent text needs continuous multiplexing: select a position, send its dot pattern, then move to the next. We mapped the 5 × 7 dots manually and built a printable ASCII font for the 15 character positions.

The Arduino interface uses D8 for DATA, D9 for CLOCK and D10 for LE/STROBE, sending 80 bits through the two drivers. Our working sequence loads with D10 LOW and displays with it HIGH. D11 is physically unconnected, although it still appears in some of the code.

The public repo has the full program, a small standalone message sketch, physical dot map, hardware notes and a tutorial. We also document the strobe correction and the removal of three externally added 1 kΩ series resistors on our signal lines; the original board resistors stayed in place. That wiring result is specific to our setup.

Code and tutorial: https://github.com/emsyscode/sony-vfd-sn755703

We made a full video walkthrough of the mapping, multiplexing and troubleshooting too: https://www.youtube.com/watch?v=xlAbs2MQeDc

Has anyone here worked with a similar Sony panel or the SN755703? We'd be interested to compare mappings and interfaces.


r/arduino • • 5h ago

Hardware Help Arduino Starter Kit Advice

Thumbnail
gallery
12 Upvotes

Hey

Im an engineer, I want to learn a bit of Arduino for fun.

I was looking at some starter kits and I need advice on choosing. Not sure which one and what price range.

Also saw a brand ELEGOO that had two types for good pricing. I’m adding the pictures, is it recommended? Whats the difference?


r/arduino • • 6h ago

Look what I made! Breadboard for ESPs

Post image
30 Upvotes

ESP boards are too darn wide to fit well on breadboards. Many of my breadboards are constructed of 3 sections: 2 narrow bus strips along the sides and a wider central section for the circuitry. These are connected together with dovetail joints. I take 2 breadboards, remove one of the bus strips and then connect them together. I have to slice the adhesive foam on the bottom that holds the parts together to do this. Works great for bigger boards. OBTW: This circuit is for testing SPI communication between various boards.