The OPEN-SMART Rich UNO R3 is an ATMEGA328P development board with many components on board and also has the ability to connect an existing Arduino shield to it, it is significantly larger than an Arduino Uno – more than twice the size. This means its aimed at learning rather than using in projects due to its size.
Lets see some images of the board
The components on the board include a 4 digit display, a DS1307 clock, LM75 temperature sensor, infrared receiver, serial MP3 player, rotation angle sensor, 4-channel touch sensor. Hardware resources as you can see are abundant and an added bonus is that you do not need any connecting wires, and the usage is very simple.
If you buy the full kit it also contains a TF card, a speaker, a CR1220 battery for the RTC functionality, and an infrared remote control.
4 digit display | There is a 4 digit 7 segment display (0.36 inches) which can display the clock point, it uses the D10/D11 pins |
DS1307 clock | this uses a DS1307 high-precision real-time clock module with a default I2C address of 0x68. |
LM75 temperature sensor | I2C interface temperature sensor with a default I2C address of 0x48. |
Infrared receiver | this uses D2 pin |
Serial MP3 | There is an MP3 music player module which is based on high-quality MP3 music chip, it uses D7 / D8 pins to be software serial port. |
Potentiometer | 10K ohm adjustable potentiometer whichuses A0 pin. |
4 Channel touch sensor | capacitive touch switches, these use pins (D3 / D4 / D5 / D6) |
Onboard DIP switch which allows you to select between the onboard components mentioned earlier or an external shield
Onboard Arduino Shield interface which allows you to plug your existing Arduino shields
Code example
The following example will get the temperature from the LM75 on the 4 segment display example – it uses the RichUNO library, we have many more examples in our github link later on in the article. You do not need to use this library but it does make development a lot easier
[codesyntax lang=”cpp”]
#include <Wire.h> #include <SoftwareSerial.h> #include "RichUNOTM1637.h" #include "RichUNOLM75.h" LM75 temper; // initialize an LM75 object "temper" for temperature #define CLK 10//CLK of the TM1637 IC connect to D10 of Arduino #define DIO 11//DIO of the TM1637 IC connect to D11 of Arduino TM1637 disp(CLK,DIO); void setup() { Wire.begin();//you should run this function first, so that I2C device can use the I2C bus disp.init();//The initialization of the display delay(1000);// } void loop() { float celsius; celsius = temper.getTemperatue();//get temperature displayTemperature((int8_t)celsius);// delay(1000);//delay 1000ms } /************************************************* *********************/ /* Function: Display temperature on 4-digit digital tube */ /* Parameter: -int8_t temperature, temperature range is -40 ~ 125 degrees celsius */ /* Return Value: void */ void displayTemperature(int8_t temperature) { int8_t temp[4]; if(temperature < 0) { temp[0] = INDEX_NEGATIVE_SIGN; temperature = abs(temperature); } else if(temperature < 100)temp[0] = INDEX_BLANK; else temp[0] = temperature/100; temperature %= 100; temp[1] = temperature / 10; temp[2] = temperature % 10; temp[3] = 12; //index of 'C' for celsius degree symbol. disp.display(temp); }
[/codesyntax]
As stated earlier we have many examples in the github link below
There are a couple of options if you want to buy this board
Just the board on its own
A kit with several additional modules, an IR remote, connecting wire and a sensor shield
Summary
If you do not want to but an arduino and a variety of components and shields then this development board has many options on it. The kit above has more than enough for anyone trying to learn Arduino development