Electronics Parts, Modules, Components

1. 16X2 1602 BLUE LCD DISPLAY MODULE (WITH 10K TRIMMER)

1602_lcd_pack_with_resistor_and_10k_trimmer__77042.1508522284.1280.1280.jpg

LCD display module with blue backlight - Arduino Liquid Crystal library-compatible. I got it from OddWires http://www.oddwires.com/16x2-1602-blue-lcd-display-module-with-free-10k-trimmer/ I highly recommend the place, their prices are reasonable and they don't rip you off like some big-name "maker" web sites try to do. Don't be fooled if something there sayf for Arduino you can usually make it work fine on any other system.

Includes 10K trimmer potentiometer for contrast adjustment
Includes 220 ohm resistor for backlight
HD44780 compatible - works with standard Arduino LiquidCrystal library

Specifications

  • Wide viewing angle and high contrast
  • Display: 16 Characters x 2 Lines
  • LCD Type: STN Blue
  • Backlight Type: Blue LED
  • Character Fonts: 5×8 Dots (with cursor)
  • Controller: SMC1602A or Equivalent
  • Power Supply for LCM: DC +5V
  • LED Backlight Input: DC +5V
  • Module Outline Dimension: 80W * 36H * 13.5T mm
  • View Area: 65W * 14H mm
  • Character Size: 4.89W * 2.78H mm
  • Pitch Size: 0.50W * 0.55H mm

Additional References for HD44780-designs
https://www.arduino.cc/en/Tutorial/HelloWorld?from=Tutorial.LiquidCrystal
https://learn.adafruit.com/drive-a-16x2-lcd-directly-with-a-raspberry-pi/wiring

2. Ultrasonic Ranging Module HC - SR04

Ultrasonic_Sensor_HC-SR04.jpg

Ultrasonic ranging module HC - SR04 provides 2cm - 400cm non-contact
measurement function, the ranging accuracy can reach to 3mm. The modules
includes ultrasonic transmitters, receiver and control circuit.

DGCH-RED_datasheet.pdf

Example Arduino Application: http://www.instructables.com/id/Simple-Arduino-and-HC-SR04-Example/?ALLSTEPS

GitHub Repo: (sample Arduino code) https://github.com/sparkfun/HC-SR04_UltrasonicSensor

3. L298N DUAL H BRIDGE DC STEPPER MOTOR CONTROLLER MODULE FOR ARDUINO

L298StepperController__79861.1342485907.1280.1280.jpg

The L298 Stepper Controller makes it easy to drive either two DC motors or a bipolar stepper motor. This is a very high quality board and is very compact for designs where space really matters.

Features :

  • Double H bridge drive
  • Chip L298N (ST NEW)
  • Logical voltage 5V
  • Drive voltage 5V-35V
  • Logic current 0mA-36mA
  • Drive current 2A(MAX single bridge)
  • Storage temperature -20 to +135
  • Max power 25W
  • Weight 30g
  • Small size 43*43*27mm ( approx 1.75" x 1.75" x 1")
  • Compatible with L297/L298 driver

Note
This module has a built-in 5v power supply for external use. Drive voltage is 7v-35v. DO NOT input voltage to +5v supply interface - this is OUTPUT only.

There is a tutorial here.http://www.oddwires.com/stepper-motor-and-l298n-stepper-motor-controller/
Available here: Stepper Library http://arduino.cc/en/Reference/Stepper

l298n-dual-2a-motor-driver-module-tronixlabs-australia-pinout.jpg
  1. DC motor 1 "+" or stepper motor A+
  2. DC motor 1 "-" or stepper motor A-
  3. 12V jumper - remove this if using a supply voltage greater than 12V DC. This enables power to the onboard 5V regulator
  4. Connect your motor supply voltage here, maximum of 35V DC. Remove 12V jumper if >12V DC
  5. GND
  6. 5V output if 12V jumper in place, ideal for powering your Arduino (etc)
  7. DC motor 1 enable jumper. Leave this in place when using a stepper motor. Connect to PWM output for DC motor speed control.
  8. IN1
  9. IN2
  10. IN3
  11. IN4
  12. DC motor 2 enable jumper. Leave this in place when using a stepper motor. Connect to PWM output for DC motor speed control.
  13. DC motor 2 "+" or stepper motor B+
  14. DC motor 2 "-" or stepper motor B-

There is a good tutorial here http://www.oddwires.com/stepper-motor-and-l298n-stepper-motor-controller/

Here is another (pdf)

l298n_dual_motor_controller_module.pdf

4. DS1307 Real Time Clock Module for Arduino with I2C Interface

DS1307 Real Time Clock Module for Arduino with I2C Interface

rtcClock__34294.1342870302.1280.1280.jpg
This is a DS1307 Real Time Clock utilzing I2C and can be used with standard DS1307 library. The included Lithium coin cell battery (CR1225 41mAh) will run the module for a minimum of 9 years (17 years typical) without external 5V power.

Specifications

Two wire I2C interface
Hour : Minutes : Seconds AM/PM
Day Month, Date - Year
Size: 28x25x10mm
Leap year compensation
Accurate calendar up to year 2100
DS1307 based RTC with LIR2032 battery (Battery include)
1Hz output pin
56 Bytes of Non-volatile memory available to user

Connections

SDA to SDA (Data)
SCL to SCL (Clock)
Vcc to +5V
GND to GND

Arduino LIbrary http://code.google.com/p/ds1307new/

Datasheet

DS1307.pdf

A great tutorial

TinyRTC_i2c_module_Techincal_Manual_rev1.pdf

5. HC-05 Bluetooth Transceiver Module RS232/TTL Baseboard, Master / Slave

HC_05__32433.1424220923.1280.1280.jpg

Features:

Bluetooth Serial Transceiver Module with baseboard
Works with any USB Bluetooth adapters
Easy to use and completely encapsulated
This module includes key interface and state interface compared with Smart Bluetooth Module Baseboard
The Bluetooth Module Baseboard can be compatible with master mode, slave mode and both master-slave mode
Works for Bluetooth TTL transceiver module which allows your target device to both send or receive the TTL data
The key interface on the baseboard is the master mode button and can be controlled by high level from external MCU, then this module will search again automatically

More Specs:

Power supply input is 4.5~6V
Module working voltage 3.3 V
Potter default rate of 9600, the user can be set up
The core module size : 28 mm x 15 mm x 2.35 mm
Working current: matching for 30 MA, matching the communication for 8 MA
Dormancy current: no dormancy

Here is the manual for this module.

newBluetooth.pdf

6. LED Matrix 8 x 8 Red Common Cathode

ledMatrix8x8__79593.1369168554.1280.1280.jpg

Versatile LED matrix. Easy to use with MAX7219CNG display driver and Arduino.

Specifications

8 x 8 matrix
Red color
3mm LEDs
Common cathode pins - easy to drive with MAX7219CNG
Face color black
Lens epoxy color white, diffused
Viewed from top, pin 1 is bottom left , pin 16 is top left (see image)

LED8x8_1088AS.pdfSH1088AS_Pinout__85329.1463421586.1280.1280.pdf

Great tutorial http://playground.arduino.cc/Main/LEDMatrix

Arduino Library http://playground.arduino.cc/Main/LedControl

7. IRLB8721PBF POWER N-CHANNEL MOSFET 30V 60 A

irlb8721__79160.1361649575.1280.1280.jpg

Excellent, general purpose power MOSFET. Used in many Arduino switching situations, motor control etc.

Features

Very Low RDS(on) at 4.5V VGS
Ultra-Low Gate Impedance
Fully Characterized Avalanche Voltage and Current
Lead-Free

irlb8721pbf.pdf

8. DHT11 Temperature and Humidity Sensor

DHT11__26715.1343837305.1280.1280.jpg

Specifications

Temperature Sensor IC
Relative humidity Resolution: 16Bit, Repeatability: ±1% RH, Accuracy: At 25°C ±5% RH
Temperature Resolution: 16Bit, Repeatability: ±0.2°C, Range: At 25°C ±2°C Response time: 1 / e (63%) 10S
Electrical Characteristics, Power supply: DC 3.5~5.5V, Current: measurement 0.3mA standby 60µ A
Sampling period: more than 2 seconds

Pin Description
1, VDD power supply 3.5~5.5V DC
2 DATA serial data, a single bus
3, NC, empty pin
4, GND ground, the negative power

dht11-sensor.jpg

Manual

DHT11.pdf

9. 433 MHz Transmitter and Receiver Modules

nrf__66638.1347562824.1280.1280.jpg433MhzTransceiver__65253.1347562835.1280.1280.jpg

This is a very low cost transmitter and receiver pair. Typical transmission distances are up to 100 yards or meters. They are very suitable for remote control (with longer distances than IR and no direct line of sight required), sensor transmission or data logging applications. Use of antennas, particularly on the transmitter will ensure decent transmission/reception distances. A quarter-wave antenna of around 17.5 cm or 8.2 inches is the calculated length. In practice a length of wire around 12 inches has proven better. The transmitter can be driven at varying voltages up to 12V max. At 9V we were able to achieve transmission from any position to any other in a 3,000 square feet house in a third of an acre plot using 12" antennas at 2400 bps. The virtualWire library makes it easy to use the devices with Arduino.See http://www.open.com.au/mikem/arduino/

Specifications (transmitter)

Working voltage: 3V•__12V
Working current: max≤40mA (12V), min≤9mA(3V)
Resonance mode: sound wave resonance (SAW)
Modulation mode: ASK /OOK
Working frequency:433.92MHz
Transmission power: 25mW (315MHz at 12V)
Frequency error: +150kHz (max)
Transmission rate: ≤10Kbps

Specifications (receiver)
Working voltage: 5.0VDC +0.5V
Working current:≤5.5mA (5.0VDC)
Working principle: single chip super-regeneration receiver
Working method: OOK/ASK
Working frequency: 433.92MHz
Sensitivity: excel –100dBm (50Ω)
Transmitting velocity: max 9.6Kbps

433mhz_rf-tx&rx.pdf

Tutorial for Arduino http://electronics-diy.com/arduino-rf-link-using-433mhz-transmitter-receiver-modules.php

Arduino Sensor Shield V5.0

arduino-sensor-shield-v5.0.jpg

The Arduino Sensor Shield V5.0 is an input/output (I/O) stackable shield that breaks out the various I/O pins of the Arduino to connectors that are more robust than the pins on the Arduino board. This allows you to connect various modules like sensors, servos, relays, buttons, potentiometers and much more.

Digital I/O ports include digital pins 0 through 13 including GND and AREF. Each of these I/O rows have a dedicated Ground, Voltage, and Signal pin. Analog I/O ports like it's digital counterpart includes analog pins A0 through A5. Each of these analog I/O rows have a dedicated Ground, Voltage, and Signal pin.

There is a six pin break out for Bluetooth and a female header row to accommodate an APC220 Radio Communication Module.

A reset switch is also provided. Interfaces: IIC, servo control port, bluetooth port, SD card slot, APC220 RC module port, ultrasonic sensor port and 12864 S/P port.

Operating Voltage: 5VDC
Input Voltage (recommended): 7-12VDC
Input Voltage (limits): 6-20VDC

External power support

An extremely useful future is that this shield accepts external power for that high power demanding devices like servos and motors. Next to the power input is a jumper that is used to select between internal power (from your Arduino) and external power.

arduino-sensor-shield-diagram.jpg
  1. PIN13 LED Pilot
  2. Digital IO Ports D0-D13
  3. Analog IO Ports A0-A5
  4. Reset Button
  5. Power In
  6. Power LED
  7. LCD Parallel Interface
  8. LCD Serial Interface
  9. UART interface
  10. SD interface
  11. Bluetooth Interface

Here is the manual. I hope these resources help someone.

arduino-sensor-shield.pdf

TM1637 7-segment 4-Digit LED Display

TM1637-01.jpgTM1637-02.jpg

The first example is from https://github.com/avishorp/TM1637/blob/master/examples/TM1637Test/TM1637Test.ino

#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3

// The amount of time (in milliseconds) between tests
#define TEST_DELAY   2000

const uint8_t SEG_DONE[] = {
    SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,           // d
    SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
    SEG_C | SEG_E | SEG_G,                           // n
    SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
    };

TM1637Display display(CLK, DIO);

void setup()
{
}

void loop()
{
  int k;
  uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
  display.setBrightness(0x0f);

  // All segments on
  display.setSegments(data);
  delay(TEST_DELAY);

  // Selectively set different digits
  data[0] = 0b01001001;
  data[1] = display.encodeDigit(1);
  data[2] = display.encodeDigit(2);
  data[3] = display.encodeDigit(3);

  for(k = 3; k >= 0; k--) {
    display.setSegments(data, 1, k);
    delay(TEST_DELAY);
    }

  display.setSegments(data+2, 2, 2);
  delay(TEST_DELAY);

  display.setSegments(data+2, 2, 1);
  delay(TEST_DELAY);

  display.setSegments(data+1, 3, 1);
  delay(TEST_DELAY);

  // Show decimal numbers with/without leading zeros
  bool lz = false;
  for (uint8_t z = 0; z < 2; z++) {
    for(k = 0; k < 10000; k += k*4 + 7) {
        display.showNumberDec(k, lz);
        delay(TEST_DELAY);
    }
    lz = true;
  }

  // Show decimal number whose length is smaller than 4
  for(k = 0; k < 4; k++)
    data[k] = 0;
  display.setSegments(data);

    // Run through all the dots
    for(k=0; k <= 4; k++) {
        display.showNumberDecEx(0, (0x80 >> k), true);
        delay(TEST_DELAY);
    }

  display.showNumberDec(153, false, 3, 1);
  delay(TEST_DELAY);
  display.showNumberDec(22, false, 2, 2);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 3);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 2);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 1);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 0);
  delay(TEST_DELAY);

  // Brightness Test
  for(k = 0; k < 4; k++)
    data[k] = 0xff;
  for(k = 0; k < 7; k++) {
    display.setBrightness(k);
    display.setSegments(data);
    delay(TEST_DELAY);
  }

  // On/Off test
  for(k = 0; k < 4; k++) {
    display.setBrightness(7, false);  // Turn off
    display.setSegments(data);
    delay(TEST_DELAY);
    display.setBrightness(7, true); // Turn on
    display.setSegments(data);
    delay(TEST_DELAY);  
  }

  // Done!
  display.setSegments(SEG_DONE);

  while(1);
}

This one just increments until it reaches "9999" …

/* TM1637_4_Digit_Display_Basics.ino
The purpose of this sketch is to provide the basic
structure for using the TM1637 based 4-Digit Displays
like the Grove 4 digit display or other equivalents
available through the likes of www.dx.com. 

This makes use of the TM1637Display library developed by avishorp.
https://github.com/avishorp/TM1637

This has been developed to run on any Arduino.

Pin assignments are:
TM1637 Display
CLK - D9
DIO - D8
5V or 3.3V supply to Display
GND to Display

The operation is very simple.  The sketch initialises the display
and then steps through the loop incrementing the value of a
variable which is then displayed on the 4-Digit display.
Essentially it is the most basic function you would want from
such a display.  If you want more sophisticated functionality
then use the example that ships with the library.

*/

#include <TM1637Display.h>

const int CLK = 9; //Set the CLK pin connection to the display
const int DIO = 8; //Set the DIO pin connection to the display

int NumStep = 0;  //Variable to interate

TM1637Display display(CLK, DIO);  //set up the 4-Digit Display.

void setup()
{
  display.setBrightness(0x0f);  //set the diplay to maximum brightness
}

void loop()
{
  for(NumStep = 0; NumStep <= 9999; NumStep++)  //Interrate NumStep
  {
    display.showNumberDec(NumStep); //Display the Variable value;
    // delay(500);  //A half second delay between steps.
  }
}

Adafruit PCA9685 16-Channel Servo Driver

See https://cdn-learn.adafruit.com/downloads/pdf/16-channel-pwm-servo-driver.pdf for further information.

I have archived a copy here.

16-channel-pwm-servo-driver.pdf

They have a great tutorial here: Adafruit PCA9685 16-Channel Servo Driver

MCP 3008 ADC

AdaFruit has a great set of tutorials on using this with a Raspberry Pi, See https://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi as well as https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/mcp3008 They also have that material in PDF so here is https://cdn-learn.adafruit.com/downloads/pdf/raspberry-pi-analog-to-digital-converters.pdf as well as https://cdn-learn.adafruit.com/downloads/pdf/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi.pdf

I have archived copies here.

reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi.pdfraspberry-pi-analog-to-digital-converters.pdf

There is a very decent article on using this chip here https://pimylifeup.com/raspberry-pi-adc/