TransWikia.com

Do I have to use specific GPIO pins for specific modules?

Raspberry Pi Asked on October 5, 2021

I am new to SBC and modules. I am sorry if this question is stupid. I bought a TM1637 (datasheet) that looks like below. It was marked as "for Arduino", but I thought Pi and Arduino uses the same modules. I tried to find tutorials for connecting it to Pi, but I could not find one, and the top result was connecting a similarly-looking module to a Pi. The tutor was connecting the data pin to the pin 3 (GPIO 2 – SDA) and the clock pin th the pin 5 (GPIO -SCL). I connected TM1637 like that.

enter image description here

Now, I expected I could display a number with a few simple lines of Python, but the search results were all for Arduino, and I have discovered that Arduino libraries cannot be used with Pi. After some more searching, I have found this Github library. I ran the example code but it did not work. I moved the data/clock pins to the Pin 38 (GPIO – PCM_DIN) and the Pin 40 (GPIO – PCM_DOUT) as the picture on the Github page, and then it worked.

Image on the Github page, not mine
Image on the Github page, not mine

According to an existing answer, those pins are for "PCM is how uncompressed digital audio is encoded. ". So, my question is I must connect the TM1637 to Pin 38 and 40, not other GPIO pins? Or is it only because the programmer of the library wrote the the library in a particular way so that only those pins work? I am asking this because if the answer is the former, my plan of connecting multiple modules to a single Pi shall not be possible. I thought that since there are many GPIO pins, I could connect at least 4 or 5 modules, but there is only one "GPIO – PCM_DIN", so, for example, I could not connect two TM1637’s to a single Pi.

One Answer

The github resource you have found has a line where your connection is defined. Check this one:

Display = tm1637.TM1637(CLK=21, DIO=20, brightness=1.0)

Now, let's check the connection - picture:

Pi-connection

Please note the code saying CLK=21 and DIO=20 and two wires connected there. If you want to use other pins, for example GPIO2 and GPIO3 change them in the constructor's line, like below:

Display = tm1637.TM1637(CLK=3, DIO=2, brightness=1.0)

And - of course you have to change your wired connection to correspond to the code.
This will be possible, as you can see the github note (github page, below all pictures) saying:

Note: Most GPIO pins will work in place of the above pins (Such as DIN - GPIO 24 & CLK- GPIO 23)

Last note helpful in future: Do not worry now about PCM_DIN or SDA, CLK. This is the other PIN purpose, but before you can use it, you must configure the processor's output to work this way. For example, those two - GPIO2/SDA and GPIO3/SCL may be useful when you want to use your Raspberry Pi with any module with I2C interface, for example OLED display(with I2C interface) or INA219 (quantity of different modules is endless). Other useful interface is SPI, again: when you choosing the module, you check for specific interface. If you going to use your RPi more, you will find more info later.

For now, the most important is to use GPIO's in most basic way, and your TM1637 gives you this possibility.

Good luck!

Correct answer by smajli on October 5, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP