User Tools

Site Tools


notes:c4eng:fall2023:projects:ptb0

This is an old revision of the document!


PTB0

LED

The RED and GREEN LED's have to have 3.3V, 220ohm resistors, and be grounded.

GPIO MODE SETTING

The GPIO mode setting you have plays a critical role in making sure the circuit functions properly. Using commands such as gpio mode (WPI) in/out will control whether or pin is an input or output. gpio write (WPI) 0/1 will control if the pin you select receives voltage. 0 being none, 1 meaning it will receive voltage.

GPIO COMMAND-LINE TESTING

We can test our pin outputs directly from the command line, before writing code.

After identifying the pin number with GPIO readall, we can then use commands such as GPIO mode PIN# OUTPUT and GPIO write PIN# 1 and observe the result on our circuit. If we set the GPIO pin connected to our red LED to high, and the red LED doesn't turn on, we know something is wrong.

SPEAKER (PASSIVE BUZZER - SPEAKER WITH STICKER)

Passive speaker has one leg longer than the other. It also has a closed bottom while the active speaker has an open bottom.

transister 8050

GPIO MODE SETTING

To initialize our GPIO pins, we use the pinMode() function with the first argument being the pin number, and the second argument being the state (input or output).

As an example, to initialize the pin our red LED is on to OUTPUT, after we've defined REDLED as the corresponding pin number, we would do this:

pinMode (REDLED, OUTPUT); 

We also want to initialize our inputs, which has already been done for us in this snippet here:

 
pinMode (BUTTON, INPUT); 

Underneath that we find pullUpDnControl(). We don't need to worry about this, but this essentially allows our input to be accurate. Without this, we may not detect input from the button properly.

BUTTON

The button itself be connected to a wire from the 3.3V pin through a 10k ohm resistor, a wire from a gpio pin through a 10k ohm resistor, and a wire leading to the ground pin. In the code, define the button according to the GPIO pin its connected to. The following code will be used if its connected to GPIO5:

#define BUTTON       21

The button should already be set to input in the code because when you are pressing the button, you are inputting information into the program. The state of the button should already be defined in the code to rely on whether the button is being pushed or not.

state     = digitalRead (BUTTON);

if you wanted to make an if statement that is in effect when the button is being pushed, you can use the following:

if (state  == LOW) { 

Then you can use an else, which will only take effect when the button is not being pushed.

GPIO MODE SETTING

VERIFYING CORRECT CIRCUIT CONNECTION

At every stage of building our circuit, it's useful to make sure that things are hooked up properly before writing our code.

One example of this would be plugging our LEDs to 3.3v instead of a GPIO pin, just to make sure they turn on.

We can also make sure our buzzer works by connecting the middle leg of the transistor to 3.3v (with the correct resistor in our circuit).

notes/c4eng/fall2023/projects/ptb0.1696473002.txt.gz · Last modified: 2023/10/05 02:30 by mwinter4