Introduction: Open Source Arduino Scholar Kit up V2

Last class, I made my first Arduino Learner Kit for making the Arduino learning easy to a beginner. Over the yr I discovered few bugs on my aim. I too got around feedback from the readers to make a couple of modifications. Considering complete I made the second version of the kit up.

If you are a beginner in Arduino World and going to learn Arduino having some active experience this Instructables and the Kit is for you. This Kit is also a good choice for the teachers World Health Organization the likes of to Edward Thatch Arduino to their students in an unhurried way within a short clock time.

If you want to be an Arduino developer then you should learn the chase topics victimization Arduino:

Digital Turnout:

  • Dominant multiple LEDs using Arduino
  • Generating Tone using Buzzer

Digital Stimulant:

  • Interfacing button switch using Arduino
  • Interfacing DHT11 Sensor Using Arduino

Linear Input:

  • Recitation Analog data from a potentiometer
  • Interfacing LM35 temperature sensor using Arduino

Analog Output (using PWM):

  • Generating ten-fold colors using the RGB LED.

SPI Communication:

  • Interfacing 74HC595 Shift Registerwith Arduino
  • Interfacing MAX7219CNG with Arduino for driving Superman Matrix display operating theater multiple seven-segment displays using solitary 3 pins of Arduino.

I2C Communication:

  • Reading go steady and time from DS1307 period of time clock

UART Communication:

  • Interfacing GROVE GPS and Bluetooth Mental faculty with Arduino

Showing Interfacing:

  • Driving 16 X 2 Character LCD display using Arduino

Multiplexing:

  • Dynamic multiple septenar-segment displays exploitation a minimum number of Arduino pins.

You will Be wondering to know that the new Kit is configured to experiment with all the to a higher place-mentioned topics. So, it can be an Ideal Learner Kit for learning Arduino Programming.

[The Kit includes onboard 6 Green LED, 1 RGB LED, 1 Potentiometer, 1 LM35 Sensor, 1 DHT11 Sensor, 4 Button Switch, 4 Seven Section Exhibit, 1 8X8 Dot Matrix Display, 1 MAX7219CNG IC, 1 74HC595 Shift Register, 1 Buzzer, 1 16X2 LCD display, 1 DS1307 RTC, 3 Grove Ecumenical Connector.]

No more separate shield or module, no more more loathsome wiring on the way of learning Arduino.

Watch the demo video:

What's new in v2?

1. RGB color problem is resolved

2. Dit Matrix row sequencing problem is solved

3. Power supply unit is updated

Step 1: Bill of Materials (BOM)

Pursuit Components will be obligatory for making the Kit up:

Sl. Nobelium. Component Name Amount Where to buy
1. Arduino Nano 1 gearbest.com
2. 16 X 2 Character LCD 1 gearbest.com
3. 32mm 8 X 8 Single Colourise Sprinkle Matrix Video display 1 gearbest.com
4. 0.56 inch 4 Digit Seven Segment Display (Ml) 1 aliexpress.com
5. DHT11 Temperature & Humidity Sensor 1 gearbest.com
7. LM35 Temperature Sensor 1 aliexpress.com
8. 5mm LED 6
9. 10K Potentiometer 1 aliexpress.com
10. 5K Trim Whole sle 1
11. MAX7219 LED Driver IC 1 aliexpress.com
12. 74HC595 Transmutation Register IC 1 aliexpress.com
13. DS1307 RTC IC 1 aliexpress.com
14. BC547 Universal Desig NPN Electronic transistor 4
15. LM7805 5V Linear Regulator IC 1
16. 6mm Tactile Button Switch 4
17. RGB Light-emitting diode (Predator) Common Anode 1
18. 5V Piezo Buzzer 1
19. CR2032 Coin Cellular telephone Battery 1
20. 4 Contact Duck Replacement 1
21. 16 Fall IC Base 1
22. 8 Pin IC Base 1
23. 24 Pin IC Base 1
24. Universal Grove Connector 3
25. CR2032 Battery Bearer 3
26. Female Pin Header 4
27. Young-begetting Pin Header 1
28. 220 Ohm Resistor 20
29. 4.7K Resistance 6
30. 100 Ohm Resistor 1
31. 10K Georg Simon Ohm Resistance 5
32. 4.5 X 5 edge in double-sided bull clad board 1 gearbest.com

Following Tools will exist required:

Sl. No. Tools Name Quantity Where to buy
1. Soldering Station 1 gearbest.com
2. Digital Multimeter 1 gearbest.com
3. PCB Chela 1 gearbest.com
4. Wire Stonecutter 1 gearbest.com
5. Desoldering sucking pump 1 gearbest.com

Step 2: Designing Nonrepresentational in Bird of Jove

This is the most important pace of making the kit. The complete circuit and table layout were designed exploitation Eagle cad. I make the schematic disunite by part so that information technology can equal well perceivable and you can modify it easily according to your requirement.

In this section, I will explicate each portion separately.

LCD Connection

In this section, I leave explain how to join an Liquid crystal display (LCD) to the Arduino plug-in. LCDs like-minded these are very popular and broadly secondhand in electronics projects as they are good for displaying information like sensors data from your project, and besides they are very cheap.

It has 16 pins and the first one from left to right is the Ground pin. The second pin is the VCC which we get in touch the 5 volts pin on the Arduino Board. Next is the Vo pivot on which we can attach a potentiometer for dominant the contrast of the display.

Next, The RS trap or register choose pin is used for selecting whether we will get off commands or data to the LCD. For example, if the RS pin is set on low state OR zero volts, and so we are sending commands to the LCD like: set the pointer to a specific location, clear the reveal, turn off the display and so on. And when RS pin is set on High state or 5 volts we are sending data or characters to the Liquid crystal display.

Following comes the R / W PIN which selects the mode whether we will read or write to the LCD. Here the write way is obvious and IT is used for writing or sending commands and information to the LCD. The read mode is used by the Liquid crystal display itself when capital punishment the program which we preceptor't have a need to discuss it in this tutorial.

Following is the E pin which enables the writing to the registers, or the next 8 data pins from D0 to D7. Soh through this pins we are sending the 8 bits data when we are writing to the registers or for deterrent example if we want to attend the latter uppercase A on the display we will send 0100 0001 to the registers according to the ASCII hold over.

And the cobbler's last two pins A and K, operating theater anode and cathode are for the LED backlight. After all, we don't possess to worry much just about how the LCD works, As the Liquid Crystal Library takes treat almost everything. From the Arduino's constituted internet site you can regain and date the functions of the library which enable easy use of the LCD. We ass use the Library in 4 or 8-bit mode. In this kit, we wish use it in 4-bit mode, or we bequeath just use 4 of the 8 information pins.

Sol, from the above explanation, the circuit connectedness is obvious. The label LCD came from an enable switch through which the LCD can be enabled or unfit. Anode pin is connected through a 220ohm resistor to protect the backlight led from blazing. Variable voltage is provided to VO pin of the LCD direct a 10K potentiometer. R/W pin is engaged to Ground as we only write to the LCD. For displaying data from Arduino we need to connect RS, E, DB4-DB7 pins to Arduino hance these pins are connected to a 6 pin connector.

Seven Segment Exhibit Connection

A Seven-segment display (SSD), or seven-segment indicator, is a form of an lepton display twist for displaying denary numerals that is an alternative to the more than complex dot matrix displays. Vii-segment displays are wide used in digital filaria, electronic meters, basic calculators, and otherwise electronic devices that display numerical data.

Therein Kit I used 4 digit 7 segment exhibit and multiplexing technique wish be used for controlling the video display. A 4-digit 7-segment LED expose has 12 pins. 8 of the pins are for the 8 LEDs on each of the 7 section displays, which includes A-G and DP (decimal point). The some other 4 pins be each of the 4 digits from D1-D4.

Each segment in the display module is multiplexed, meaning it shares the equivalent anode connection points. And apiece of the Little Jo digits in the module have their own common cathode link point. This allows each finger's breadth to atomic number 4 turned happening or off independently. Also, this multiplexing technique turns the massive add up of microcontroller pins necessary to control a show into just eleven or twelve (in place of thirty-two)!

What multiplexing does is simple – show one digit at a time on a display unit of measurement and change over between exhibit units in no time. Referable persistence of vision, human being eye can not differentiate betwixt which display is ON/OFF. The human eye conscionable visualizes altogether the 4 display units to get on day in and day out. Let's allege we need to show 1234. First we turn on the segments relevant to "1" and wind up the 1st display unit. Then we ship signals to show "2", become off 1st display unit and turn on 2nd display unit. We repeat this process for next 2 numbers and switch between display units should be done identical fast (just about inside one second time lag). As our eyes can't pick a change occurring repeatedly to any object within 1 second, what we visualize is 1234 appearing on the presentation at the same time.

And then, by connecting digits common cathodes to ground we are dominant which digit shall be turned on. Each Arduino pin can drain(receive) maximum 40 mA latest. If all one digits segments are on, we are having 20×8= 160 mA that is to more, so we can't to get in touch common cathodes directly to Arduino ports. Thus I have utilised BC547 NPN transistors every bit switches. The transistor is on, when a supportive voltage is applied at the baseborn. To limit the prevalent I used a 4.7K resistor to the cornerstone of the transistor.

DS1307 RTC Connection

Atomic number 3 its name suggests, a very-time clock is in use to keep phonograph recording polish off time and to presentation time. It is used in many digital electronic devices like computers, electronics watches, date loggers and situation where you need to keep track of time. matchless of the great benefits of a time period clock is that it besides keeps record of time even if tycoo supply is non available. Now the enquiry is how can an electronics device like real-time time work without use of force supply. Because it ingest small power cell of about 3-5 volt inside which can work for years. Because proper time clock consumes a minimum sum of money of power. There are many dedicated amalgamated circuits are available in the market which is used to puddle period of time clock by adding necessary lepton components. But in the Kit up I used DS1307 real time clock IC.

DS1307 is IC for real-time clock which is used to count seconds, proceedings, hours, years, months any years. Arduino read values of time and date from DS1307 using I2C communicating protocol. It also accept feature to keep show of right time just in case of power failure. It is an 8 snatch Ninety-nine. It is used to work real-time time exploitation some other lepton components. Pin configuration of DS1307 is given below:

Personal identification number one and two (X1, X2) is used for crystal oscillator. Quartz oscillator measure usually used with DS1307 is 32.768k Hz. Pin three is ill-used for hindmost up battery. Its appreciate should be between 3-5 V. voltage more than 5 volts may burn DS1307 permanently. Loosely, coin cell battery is used to hold up track of time just in case of power outage to DS1307. After getting power DS1307 shows correct time ascribable back up bombardment. Pin 4 and 8 is for power cater. Pin 5 and 6 is used to put across with other devices with the help of I2C communication communications protocol. Personal identification number 5 is serial information pin (SDA) and pin 6 is in series time (SCL). Both pins are open drain and require an external pull-in resistor. If you don't know about I2C communication, i recommend you to learn about IT. Pin 7 SWQ/OUT Lawful Curl/Output signal Driver. When enabled, the SQWE act band to 1, the SQW/OUT pin outputs one of Little Jo square-wave frequencies (1Hz, 4kHz, 8kHz, 32kHz). The SQW/OUT fall is open drain and requires an external rend-up resistor. SQW/OUT operates with either VCC or VBAT applied. An LED and 220 Ohm resistance nonparallel tied to VCC will make a 1 HZ blink. This is a good way to tell if the clock Saratoga chip is working.

74HC595 Brea Register Connection

The 74HC595 is useful if you bump yourself needing Sir Thomas More outputs than you have available on your microcontroller; Its time to toy with using a serial shift register such arsenic this break away.

Using a few of your existing microcontroller outputs you can add nine-fold 595's to extend outputs in multiples of 8; 8 outputs per 595. When you add more 595s you Don't use up whatever more of your existing microcontroller output pins.

The 74HC595 is a serial-to-parallel shift register or SIPO (Sequent In Twin Out) device for increasing the list of outputs from your microcontroller. Its simply a memory twist that sequentially stores each bit of data passed to it.
You send it information by presenting a information bit at the data input and supply a clock signal to the time input. At each clock signal the data is passed along a chain of d-types - the output of each d-type feeds into the stimulant of the adjacent.

To start with 74HC595, pins 16 (VCC) and 10 (SRCLR) should glucinium connected to 5V and pins 8 (GND) and 13 (OE) should personify contiguous to ground. This should keep the United States Intelligence Community into the normal working mood. Pin 11, 12, and 14 should be on-line to three digital pins of the Arduino for transferring data to the IC from the Arduino.

Dot Matrix and MAX7219CNG Connection

A Dot Matrix is a two magnitude speckled LED array, which is used to symbolize characters, symbols, and images. Almost all the modern display technologies make use of dot matrices including cell phones, television etc. If you're a soul World Health Organization loves playing around with LEDs, Lucy in the sky with diamonds matrix display is for you.

A regular 8x8 Dot Intercellular substance unit has 64 LEDs arranged in a flat. You can get your hands on two types of Zen Matrices. One which comes as a plain single matrix which has 16 pins to ascendency the rows and columns of the raiment. This one would use a lot of wires and things can nonplus a distribute messier.

To simplify these things, it is also available integrated with MAX7219 Driver, which has 24 pins. At the stop you wealthy person 5 pins to get in touch to your I/O which makes your job a lot more easier. In that respect are 16 end product lines from the 7219 dynamic 64 individual LEDs. Persistence of vision is exploited to make the LEDs look to get on all the time when in fact they are not. You can also control the brightness of the LEDs done the code.

This small IC is a 16 bit order pitch register. The first 8 bits narrow down a command and the remaining 8 bits are old to specify the data for the require. In a nutshell, the working of the MAX7219 can be summarized as follows:
We have it off that our eyes remember a dash for about 20ms. So the Driver flashes the LEDs at a rate greater than 20ms which makes us feel that the buoyant never goes off. In this way, the 16 pins restraint 64 LEDs.

The VCC and GND of the module get to the 5V and GND pins of the Arduino and the three other pins, DIN, CLK and Cs go to some digital pin of the Arduino board. If we want to associate more than one module we just link up the output signal pins of the previous breakout board to the input pins of the new module. In reality these pins are still except that the DOUT pin of the previous board goes to the DIN pin of the new plug-in.

Footmark 3: Designing Board Layout in Eagle (PCB)

If you desire to make your design more appealing, then PCBs are the next stone's throw. With the aid of PCBs, we can avert common problems like noise, distortion, imperfect contact, etc. Moreover, if you want to go moneymaking with your design, you suffer to use a proper circuit board.

Simply, many citizenry, especially beginners, will find it difficult to design circuit boards A they feel it as a dull job and requires extreme noesis in circuit display board design. Design printed circuit boards is really simple (yes, information technology does need some practice and efforts).

Take down that the Schematic's job is only to define the parts and the connections between them. Only in Board layout does information technology matter where the parts physically go. Connected Schematics, parts are laid exterior where they make sense electrically, connected Boards, they are laid out where they physically add up, thus a resistor that is right next to a part in the Schematic may end up as far away from that component part arsenic affirmable in the Board.

Typically, when you lay out a board, you first put away the parts that have plant locations that they need to go up, like connectors. Then, mathematical group high all parts that logically make sense together, and move these clusters so that they produce the smallest amount of crossed unrouted lines. From that point, expand those clusters, unwinding all of the parts far decent apart that they don't break any design rules and have a minimum of unrouted traces crossing.

One thing with written circuit boards is that they have two sides. However, you typically pay per layer that you use, and if you are qualification this board at dwelling, you might only be healthy to reliably make one-sided boards. Due to the logistics of soldering through-hole parts, this means that we want to use the bottom of the PCB.Use the Mirror dominate and click on the surface-mount parts to switch them to the bottom layer. You may need to use the Rotate or Move command to correct the orientation of the parts. Once you have completely of the parts laid out, run for the Ratsnest command. Ratsnest recalculates the shortest path for all of the unrouted wires (airwires), which should clear up the clutter on the screen by a sensible amount.

After designing the PCB, you need to print the design. Though lots of tutorials are available happening the Internet making a good quality PCB by pass is a capacious challenge. The PCB used in this project is written from JLCPCB. The print quality is very good. I received 12 boards, all nicely vacuum sealed and gurgle wrapped. all looks redeeming, dead tolerances on solder block out, clear character on silk screen door. I added the Graber file and you can directly send it to JLCPCB to get over good quality printed PCB.

JLCPCB manufactures 5pcs of PCBs with upper limit size 10cmx10cm in just 2 dollars. This is the cheapest price we have ever seen. The transportation charge is also low as compared to other companies.

For ordering visit the JLCPCB website. The homepage displays a quotation calculating machine that takes you to the ordering page. On the quotation calculator, simply enter the size of the PCB, quantity, layers and thickness.

The inverted comma Page has an excellent default setting for beginners who behave not infer all the PCB manufacturing terms and standards. For example, the terms like Surface Complete, Gold Fingers, Material inside information, etc. can be confusing for hobbyists, so, you can just avoid those settings. The default setting is every last good. If you privation to know the meaningful of those terms and require to figure out what's their significance on your PCBs, you can simply click along the question mark right above the damage.

For example, JLCPCB has well explained the full term Gold Fingers, Material details, etc. If you are a beginner, you just need to coiffe the PCB dimensions, layers, tinge, thickness and the quantity you need. Other nonpayment settings dismiss be kept As they are.

You fire know Thomas More from this instructable.

Step 4: Soldering (Resistor, Pin Header & IC Establish)

Bonding is one of the most fundamental skills needed to dabble in the world of electronics. The two go together like peas and carrots. And, although it is possible to learn about and build electronics without needing to pick upwards a soldering iron, you'll presently impart that a livelong new world is wide with this unmatchable simple skill. Soldering is the only permanent way to 'fix' components to a circuit. And basic soldering is easy. All you need is a soldering iron and much solder. When my dad taught me every bit a teenager, I remember picking it sprouted quite fast.

Earlier starting the soldering you need some preparation for good soldering.

Plum the point
When the branding iron hot, start with cleansing the tip to remove old solder from it. You can use a damp sponge, a atomic number 29 scrub pad or something akin.

Tinning the bakshish
Ahead you start soldering, you should tin the tip of the soldering cast-iron. This makes the tip remove heat faster and thereby making the bonding easier and faster. If you get any droplets of tin on your tip, use a sponge, a cop scouring pad Beaver State just shake up it off.

A clean aerofoil is very important if you want a stiff, low-pitched resistance solder joint. All surfaces to be soldered should be cleaned fountainhead. 3M Scotch Brite pads purchased from the home improvement, industrial supply hive away or automotive trunk tell on are a good choice equally they will cursorily remove surface sully merely bequeath not abrade the PCB material. Note that you will privation postindustrial pads and not the kitchen cleaning pads impregnated with cleaner/soap. If you have particularly leatherlike deposits on your board, then a fine grade of steel wool is acceptable but be real cagy on boards with tight tolerances atomic number 3 the ticket steel shavings can lodge between pads and in holes. Once you have cleaned the control board down to shiny copper you can use a solvent such American Samoa propanone to make clean any bits of the cleaning pad that may remain and to take off chemical substance contamination from the surface of the board. Methyl radical hydrate is another good answer and a bit inferior stinky then propanone. Be mindful that both these solvents can bump off ink, and so if your circuit card is silk screened, examination the chemicals first earlier hosing behind the entire board.

I Bob Hope you realised entirely the formality above and ready to place the components on the PCB. The kit is organized for done-hole components and through-pickle components on a PCB starts by placing the percentage in its hole.

After the component and table have been cleaned, you are ready to put away the components onto the board. Unless your circuit is simple and exclusively contains few components, you will probably not be placing completely the components onto the board and bonding them at in one case. Most likely you will be bonding a few components at one time before turn the board over and placing more. In indiscriminate, it is best to set about with the smallest and flattest components (resistors, ICs, signal diodes, etc.) and then progress to the larger components (capacitors, power transistors, transformers) after the minute parts are done. This keeps the board relatively flat, fashioning it more unfluctuating during soldering. It is also optimal to save sensitive components (MOSFETs, non-socketed ICs) until the end to lessen the chance of damaging them during assembly of the rest of the circuit. Bend the leads as necessary and introduce the component direct the proper holes happening the board. To handgrip the part in place while you are bonding, you may want to bend the leads on the bottom of the board at a 45-degree angle. This works well for parts with polysyllabic leads such as resistors. Components with stumpy leads such American Samoa IC sockets can be held in place with a trifle masking tape operating room you can bend the leads down to clinch onto the PC board pads.

Apply a very small amount of solder to the tip of the iron. This helps conduct the heat to the factor and board, but it is non the solder that will pay the joint. To heat the joint you will lay the tip of the iron so that it rests against both the component lead and the board. It is critical that you heat the lead and the plank, otherwise the solder leave simply pool and refuse to perplex to the unheated particular. The small amount of solder you practical to the tip in front heating the joint will help make contact between the panel and the lead. It normally takes a second Beaver State 2 to get the joint hot decent to solder, but larger components and thicker pads/traces will draw more heat and fire gain this clock.If you see the arena under the pad starting to bubble, stop heating plant and remove the soldering iron because you are overheating the pad and it is in danger of lifting. Let it cool, then carefully rut it once more for much less clip.

Always shuffling sure that you apply enough heat, otherwise, you might end up with a "cold solder combined". Such a solder joint might look okay without really providing the connection you want. This can lead to some overserious defeat when your lap doesn't work and you are nerve-racking to soma out why ;) When you look at a stone-cold solder joint high skinny, you'll see that it has a small gap between the solder and the pin.

If you are happy with your soldering, disrupt the component take from above the solder joint.

At the time of soldering, I followed totally the supra tips. I archetypal placed all the resistors onto the board and soldered. Then I placed IC base for all the IC and soldered carefully. For bonding IC's, it is ache to use an Ninety-nine socket. Some ICs will go if the heat from the soldering iron is too hot. Then I soldered Battery shell, Grove connectors and pin headers.

To know more about placing and soldering PCB component you English hawthorn read this nice instructable:https://www.instructables.com/id/Simple-PCB-soldering/

Step 5: Soldering (LED &adenosine monophosphate; Switch)

After soldering each the resistors, pin headers and IC base it is the right time to solder LED and switches. The outfit contains half a dozen 5mm LEDs and all are located in a I line. Then I settled 4 tactile button switch.

Solder fine parts first. Solder resistors, pinafore leads, diodes and whatsoever other pocket-size parts before you solder bigger parts care capacitors and transistors. This makes meeting place more than easier. Set up sensitive components last. Set u CMOS ICs, MOSFETs and other static sensitive components terminal to quash damaging them during gathering of other parts.

While bonding is not in general a hazardous activity, there are a few things to keep in mind. The first and most obvious is that information technology involves high temperatures. Soldering irons are going to be 350F or high, and will cause burns same quickly. Stool sure to use a stand to support the iron and keep the cord departed high traffic areas. Solder itself can dribble, so it makes sense to avoid soldering over exposed body parts. Always work in a well aflare surface area where you have quad to laic parts out and move around. Keep off soldering with your front directly above the joint because fumes from the mix and other coatings will nark your metabolism tract and eyes. Most solders carry lead, so you should avoid touching your face while working with solder and ever wash your hands before eating.

Step 6: Soldering (Seven Segment, LCD &ere; Dot Matric)

This is the last stage of the soldering. In this stage, we leave solder three big components (seven segment display, battery-acid matrix display and the LCD display). First, I soldered seven segment display to the board because information technology is the smallest in size and to a lesser extent sensitive. Then I placed the dose matrix display. Afterwards bonding the dot matrix display I ordered the closing component, the LCD display to the board. Before placing the LCD to the board I for the first time soldered male fall header to the LCD and then placed to the principal PCB instrument panel. The soldering task is through with soldering of LCD.

After you have made all the solder joints, information technology is good practice to clean all the excess flux residue from the board. About fluxes are hydroscopic (they absorb water) and tin easy draw enough water to turn somewhat conductive. This can embody a significant emergence in a hostile environment such as an automotive vehicle application. Most fluxes will tidy up easily using methyl radical hydrate and a rag but some will deman a stronger result. Expend the appropriate solvent to remove the flux, past blow the board dry with compressed air.

Step 7: The Complete Kit

I promise you realised all the preceding stairs. Congratulation! You have successful your own Arduino Nano Assimilator Outfit. Now you can research the world of Arduino precise easily. You Don't demand to buy different shield or module to learn Arduino Programming. The Kit includes all the first stuff required for a learner.

You hindquarters material body the following projects victimization the kit very easily. No spare device or component is requisite. Even the board requires real some simple jumper joining.

  1. You can make a thermometer using LM35 and seven section presentation
  2. You can make temperature and humidness meter using DHT11 and LCD display
  3. You can make a simple piano victimization buttons and bell
  4. You can make a digital clock using RTC and Liquid crystal display/Seven Segment. You can also tally alarm using Buzzer. Four buttons can be used for time adjusting and configuration.
  5. You bathroom make an analog time using RTC and Dot matrix display
  6. You can make a game using buttons and Dot matrix display.
  7. You can connect some Grove mental faculty like Woodlet Bluetooth, different Grove Sensor, etc.

I mentioned simply a couple of possible options. You can create much more stuff exploitation the kit. In the close pace, I volition show you some lesson using the Kit with the Arduino sketch.

Step 8: Testing With Some Example

In this stage, I want to appearance some practical use case of the Kit.

LM35 Thermometer

Let's initiatory make a thermometer. I volition use onboard LM35 temperature sensing element and onboard 4 digits seven section display for the project. The display will atomic number 4 driven victimization multiplexing technique. So, for making the task we need to make connection between Arduino and the I/O devices. Rent out connect LM35 immobilise header to A0 of the Arduino header. For the expose we need to construct 11 connecter. Connect segments head (a,b,c,d,e,f,g) to Arduino digital (2,3,4,5,6,7,8) sequentially and digit header (d1,d2,d3,d4) to Arduino digital (9,10,11,12). That's it. Upload the following program and you will get the result.

//the pins of 4-digit 7-section display tie to pin2-13 respectively  int a = 2; int b = 3; int c = 4; int d = 5; int e = 6; int f = 7; int g = 8; int p = 13; int d4 = 12; int d3 = 11; int d2 = 10; int d1 = 9;  void setup() {   //set all the pins of the LED display as output   pinMode(d1, Turnout);   pinMode(d2, OUTPUT);   pinMode(d3, OUTPUT);   pinMode(d4, OUTPUT);   pinMode(a, OUTPUT);   pinMode(b, OUTPUT);   pinMode(c, OUTPUT);   pinMode(d, Yield);   pinMode(e, Production);   pinMode(f, Yield);   pinMode(g, OUTPUT);   pinMode(p, OUTPUT);  } int del = 5; int temp; /***************************************/  nihility coil()   temporary = analogRead(A0)*500/1023; {   clearLEDs();//light the 7-segment display screen door   pickDigit(0);//Ill risen 7-segment reveal d1   pickNumber((temp/1000));// get the value of one thousand   delay(del);//delay 5ms    clearLEDs();//clear the 7-segment display screen   pickDigit(1);//Illume 7-segment display d2   pickNumber((temp%1000/10));   postponement(del);//delay 5ms    clearLEDs();//clear the 7-segment display screen   pickDigit(2);//Light skyward 7-segment display d3   //pickNumber(n%100/10);//get the economic value of ten   deg();   time lag(del);//retard 5ms    clearLEDs();//clear the 7-segment display screen   pickDigit(3);//Illumine 7-segment display d4   //pickNumber(n%10);//Get the value of single figure   ce();   delay(del);//delay 5ms } /**************************************/  quash pickDigit(int x) //light upwards a 7-segment display {   //The 7-segment LED showing is a common-cathode one. So also use digitalWrite to  set d1 every bit high and the LED will go out   digitalWrite(d1, LOW);   digitalWrite(d2, LOW);   digitalWrite(d3, LOW);   digitalWrite(d4, LOW);    swap(x)   {     case 0:      digitalWrite(d1, High-stepped);//Get down d1 up      let ou;     case 1:      digitalWrite(d2, HIGH); //Light d2 up      happy chance;     sheath 2:      digitalWrite(d3, HIGH); //Light d3 in the lead      break;     default:      digitalWrite(d4, HIGH); //Light d4 up      break;   } } //The function is to see to it the 7-segment Light-emitting diode display to display numbers. Here x is the number to be displayed. It is an integer from 0 to 9  nullif pickNumber(int x) {   switch(x)   {     default:      zero();      break;     case 1:      same();      break;     encase 2:      2();      time out;     case 3:      three();      smash;     case 4:      four();      break;     case 5:      Phoebe();      break;     case 6:      six();      break;     case 7:      seven();      break;     sheath 8:      eight();      break;     case 9:      nine();      break;   } }  void clearLEDs() //clear the 7-segment exhibit cover {   digitalWrite(a, LOW);   digitalWrite(b, LOW);   digitalWrite(c, LOW);   digitalWrite(d, LOW);   digitalWrite(e, LOW);   digitalWrite(f, LOW);   digitalWrite(g, Forward);   digitalWrite(p, LOW); }  void ordinal() //the 7-segment led display 0 {   digitalWrite(a, Peaky);   digitalWrite(b, In flood);   digitalWrite(c, Inebriated);   digitalWrite(d, High-topped);   digitalWrite(e, High-topped);   digitalWrite(f, HIGH);   digitalWrite(g, Small); }  void one() //the 7-section LED display 1 {   digitalWrite(a, LOW);   digitalWrite(b, HIGH);   digitalWrite(c, HIGH);   digitalWrite(d, LOW);   digitalWrite(e, LOW);   digitalWrite(f, LOW);   digitalWrite(g, LOW); }  void two() //the 7-section led display 2 {   digitalWrite(a, HIGH);   digitalWrite(b, HIGH);   digitalWrite(c, LOW);   digitalWrite(d, HIGH);   digitalWrite(e, HIGH);   digitalWrite(f, LOW);   digitalWrite(g, Soaring); } void tercet() //the 7-section led display 3 {   digitalWrite(a, HIGH);   digitalWrite(b, HIGH);   digitalWrite(c, HIGH);   digitalWrite(d, HIGH);   digitalWrite(e, LOW);   digitalWrite(f, LOW);   digitalWrite(g, HIGH); }  void four() //the 7-segment led display 4 {   digitalWrite(a, LOW);   digitalWrite(b, HIGH);   digitalWrite(c, Lofty);   digitalWrite(d, LOW);   digitalWrite(e, LOW);   digitalWrite(f, Piercing);   digitalWrite(g, Screechy); }  void cinque() //the 7-segment LED display 5 {   digitalWrite(a, HIGH);   digitalWrite(b, LOW);   digitalWrite(c, Superior);   digitalWrite(d, HIGH);   digitalWrite(e, LOW);   digitalWrite(f, High-topped);   digitalWrite(g, HIGH); }  void six() //the 7-section led display 6 {   digitalWrite(a, Gamy);   digitalWrite(b, LOW);   digitalWrite(c, HIGH);   digitalWrite(d, HIGH);   digitalWrite(e, HIGH);   digitalWrite(f, Tall);   digitalWrite(g, HIGH); }  void septenar() //the 7-segment LED expose 7 {   digitalWrite(a, HIGH);   digitalWrite(b, HIGH);   digitalWrite(c, Postgraduate);   digitalWrite(d, Scummy);   digitalWrite(e, LOW);   digitalWrite(f, LOW);   digitalWrite(g, First gear); }  void eight() //the 7-section light-emitting diode exhibit 8 {   digitalWrite(a, HIGH);   digitalWrite(b, HIGH);   digitalWrite(c, HIGH);   digitalWrite(d, HIGH);   digitalWrite(e, High schoo);   digitalWrite(f, Spiky);   digitalWrite(g, HIGH); }  void niner() //the 7-segment led display 9 {   digitalWrite(a, HIGH);   digitalWrite(b, HIGH);   digitalWrite(c, HIGH);   digitalWrite(d, High-stepped);   digitalWrite(e, LOW);   digitalWrite(f, HIGH);   digitalWrite(g, HIGH); }  void deg() //the 7-segment led display 9 {   digitalWrite(a, HIGH);   digitalWrite(b, HIGH);   digitalWrite(c, Down in the mouth);   digitalWrite(d, LOW);   digitalWrite(e, LOW);   digitalWrite(f, HIGH);   digitalWrite(g, HIGH); }  void Common Era() //the 7-segment led display 9 {   digitalWrite(a, HIGH);   digitalWrite(b, LOW);   digitalWrite(c, Degraded);   digitalWrite(d, HIGH);   digitalWrite(e, Dominating);   digitalWrite(f, HIGH);   digitalWrite(g, LOW); } /*******************************************/            

LCD Testing

Lease's test the LCD with the hello world example write in code. Connect the sextuplet pins of the LCD header according to the code. Arduino pins 12, 11, 5,4,3,2 to RS, E, D4, D5, D6, D7 severally and uploads the example code. You wish get the expected production.

/*   LiquidCrystal Library - Hello World   Demonstrates the use a 16x2 LCD display.  The LiquidCrystal  program library works with all LCD displays that are compatible with the  Hitachi HD44780 device driver. Thither are many of them out at that place, and you  can usually tell them by the 16-pin interface.   This resume prints "Hello Universe!" to the LCD  and shows the prison term.    The circuit:  * LCD RS immobilize to whole number pin 12  * LCD Enable pin to digital trap 11  * LCD D4 pin to digital pin 5  * LCD D5 pin to digital pin 4  * LCD D6 pin to digital pin 3  * LCD D7 PIN to digital pin 2  * LCD R/W bowling pin to earth  * LCD VSS pin to ground  * LCD VCC flag to 5V  * 10K resistor:  * ends to +5V and ground  * wiper to Liquid crystal display VO pin (pin 3)   Library originally added 18 Apr 2008  by David A. Mellis  library modified 5 Jul 2009  by Limor Deep-fried (hypertext transfer protocol://web.ladyada.web)  illustration added 9 Jul 2009  past Tom Igoe  modified 22 Nov 2010  by Tom Igoe   This example code is in the semipublic domain.   <a href="http://www.arduino.cc/en/Instructor/LiquidCrystal"> <a href="http://www.arduino.cc/nut/Teacher/LiquidCrystal"> http://www.arduino.cc/en/Instructor/LiquidCrystal </a> </a>  */  // admit the library inscribe: #include <LiquidCrystal.h>  // initialize the program library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  void setup() {   // set up the LCD's issue of columns and rows:   lcd.begin(16, 2);   // Print a message to the LCD.   lcd.print("howdy, Earth!"); }  void curl() {   // set the cursor to column 0, channel 1   // (note: line 1 is the second wrangle, since counting begins with 0):   liquid crystal display.setCursor(0, 1);   // print the number of seconds since reset:   liquid crystal display.print(millis() / 1000); }            

Happy Face with Dot Matrix Display

The MAX7219 chip makes it easier to control the dot matrix, by fair-minded using 3 digital pins of the Arduino plug-in. Connect the intercellular substance pin head with arduino digital bowling pin using following manner: D connects to pivot 12 C connects to pin 11 L connects to pin 10 Now, upload the following codification:

#include "LedControl.h" #let in "binary.h"  /*  DIN connects to pin 12  CLK connects to pin 11  CS connects to pin 10  */ LedControl lc=LedControl(12,11,10,1);  // detain time between faces unsigned farsighted delaytime=1000;  // bright face byte hf[8]= {B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100}; // nonsubjective face byte nf[8]={B00111100, B01000010,B10100101,B10000001,B10111101,B10000001,B01000010,B00111100}; // tragic face byte sf[8]= {B00111100,B01000010,B10100101,B10000001,B10011001,B10100101,B01000010,B00111100};  void setup() {   lc.shutdown(0,false);   // Set brightness to a medium value   lc.setIntensity(0,8);   // Broad the display   lc.clearDisplay(0);   }  void drawFaces(){   // Display sad side   lc.setRow(0,0,sf[0]);   lc.setRow(0,1,sf[1]);   lc.setRow(0,2,sf[2]);   lc.setRow(0,3,sf[3]);   lc.setRow(0,4,sf[4]);   lc.setRow(0,5,sf[5]);   lc.setRow(0,6,sf[6]);   lc.setRow(0,7,sf[7]);   delay(delaytime);      // Show unmoral typeface   lc.setRow(0,0,nf[0]);   lc.setRow(0,1,nf[1]);   lc.setRow(0,2,nf[2]);   lc.setRow(0,3,nf[3]);   lc.setRow(0,4,nf[4]);   lc.setRow(0,5,nf[5]);   lc.setRow(0,6,nf[6]);   lc.setRow(0,7,nf[7]);   delay(delaytime);      // Reveal happy face   lc.setRow(0,0,hf[0]);   lc.setRow(0,1,hf[1]);   lc.setRow(0,2,hf[2]);   lc.setRow(0,3,hafnium[3]);   lc.setRow(0,4,hf[4]);   lc.setRow(0,5,hf[5]);   lc.setRow(0,6,high frequency[6]);   lc.setRow(0,7,hf[7]);   delay(delaytime); }  empty loop(){   drawFaces(); }

The code for a complete integer clock with temperature and humidity monitoring, dismay and stopo watch functionality is intended. Upload the code and experiment with it. The project runs under 4 modes of operations - :

1) Default Mode: Past default, the project is solidification to presentation meter, date, temperature and humidness information along the 16X2 LCD test.

2) Alarm Mode: Here, user can set an alarm. The user enters this mode by pressing Mode selection button once and pressing the ENTER Release thereafter. He backside first increase "Hours" value by pressing Increment button and skip to increase "Minutes" value by pressure the ENTER button over again. Later on background "Hours" and "Minutes" value the exploiter can invoke alarm by pressing the SAVE button. To exit the alarm fashion, Growth and mode excerption buttons have to be ironed together.

3) Timer Fashion: A timer setting mode can be entered by pressing the Mode pick button doubly and pressing the Go in clitoris thereafter. The process for setting and redeeming fourth dimension for timer is same as in alarm mode omit that "Seconds" value crapper too be set in this mood. The drug user can exit the timekeeper mode later on setting time by just pressing the mode selection button once again.

4) Stopwatch Way: To enter stopwatch mode, pressing mode selection clit thrice and urgent the Get into button thereafter works. Here pressing the Save up push starts the stopwatch, pressing increase button pauses the stopwatch and pressing Participate button again resets the stop watch. To exit the stopwatch mode, Figure and Mode Selection buttons have to be pressed together.

Be the First to Share

Recommendations