I saw that also.
Unfortunately that’s the pin connection for a Raspberry Pi, not an Arduino UNO.
Right now I’ve connected them to UNO pins 2,3 using <SoftwareSerial.h> and I’m using a PMS library (https://github.com/fu-hsi/pms) but I still haven’t managed to read anything from the PMS5003.
Also: I did try to digitalWrite(7, LOW) the EN pin, and nothing. Thanks for the suggestion.
Sure, but it shows you how the pins need set up for a functioning system.
Reading things back, the datasheet says that the fan needs 5V but the IO lines are 3v3 and should be level shifted. The Uno has 5V IO if I remember right. It’s possible that the PMS5003 doesn’t appreciate that.
On level shifting: I assume that’s what the pimoroni breakout board does? Otherwise I’m not sure it would make sense, since it was designed to interface a 3.3V device with tiny wires with a 5V device with larger wires.
On pins, you write:
it shows you how the pins need set up for a functioning system
From what I’ve googled, BCM 14 and 15 basically correspond to UART pins on a Raspberry Pi. Using Arduino <SoftwareSerial.h>, I am basically turning Arduino pins 2,3 into UART pins. So I suppose that part is covered theoretically, but still, nothing is working.
Level shifting is done when you have different logic levels between two devices.
The Raspberry Pi uses 3.3V logic. 3.3V is a high or logic 1. Ground is a logic 0
The Arduino Uno uses 5V logic, 5V is a high or logic 1, Ground is a logic 0.
If you feed 5V logic into a Pi it will damage it.
Feeding 3.3V logic levels into something looking for 5V can have it not work correctly.
You may have to use something like this between the breakout and the UNO.
I just did the level shifting because it’s a fair point. But still no results.
Breakout Board TX->LV1->HV1->Uno 2 (software serial RX)
Breakout Board RX->LV1->HV1->Uno 3 (software serial TX)
LV attached to 3.3V
HV attached to 5V
All GND together
Looking at the board the only component it has is a capacitor between 5V and GND, so no level shifting. Most of the more modern Arduino or Arduino-compatible boards run on 3v3 IO, with a VUSB pin which would be 5V.
The datasheet shows that the default baudrate is 9600.
Grounds connected on both sides of the level shifter?
And the ground on the UNO wired to the ground on the breakout?
Ops never mind, I missed the all grounds together in your other post.
Yeah, my MKR1000 is 3.3V logic, and my UNO’s are 5V logic. I make it a point to try and remember that, especially if there is a Raspberry Pi in the mix.
You have probably long since solved this problem. The TX on this breakout board connects to TX and the RX connects to RX!!! The designer probably wanted to make it simple for people like me.
I got your problem on an RPi Zero 2 WH but the reason for that was that I had installed the Enviro+ board and its software on this Pi. When I performed the Pimoroni instructions on another Pi that didn’t have the Enviroplus software on it, it worked fine.