Generic Calculator Shield for Arduino Photo-journal
|
03-16-2015, 04:59 AM
(This post was last modified: 03-16-2015 07:40 PM by MarkHaysHarris777.)
Post: #28
|
|||
|
|||
RE: Generic Calculator Shield for Arduino Photo-journal
Greetings, today's mods help to move this board toward its generic goal, being able to interface as a generic calculator shield for both 3.3 and 5 volt systems; specifically, I want this same board to be able to be a calculator interface for both the Arduino Mega2560 and the Arduino Due. The Due is the first Arduino with an Arm core, having the following benefits:
-A 32-bit core, that allows operations on 4 bytes wide data within a single CPU clock. -CPU Clock at 84Mhz. -96 KBytes of SRAM. -512 KBytes of Flash memory for code. -a DMA controller, that can relieve the CPU from doing memory intensive tasks. Some hi-res pics, then some comment about the interface: The beauty of the Due is the 32 bit Arm core, lots of memory, fast, and a DMA controller... the bad news is that unlike the other Arduinos its a 3.3 volt system... and its not forgiving. DO NOT put more than 3.3 volts on ANY I|O pin... you've been warned. There are two opportunities for failure:1) exceed 3.3 volts on any pin, and 2) fail to provide a full logic level high on the interfacing 5v system. Both of these problems are solved by placing a voltage comparator between each I|O pin and the 5v system. I have tucked two LM339 quad comparators under the display module. I am buffering the two control lines, the four data bus lines, and the backlight driver transistor. From the second pic you can clearly see the bus, the ref voltage divider, and the I|O pullup resistors. The third pic is the schematic for the LM339 (used for each I|O pin). This is a ton of work, but necessary to ensure flawless operation while cross developing for several boards. All good shields support 3.3 and 5 volt systems. PS I updated the code a bit (couple of slides back), to reflect the back light pin 9, analogWrite(BACKLIGHT, 220), and to show how to embed low level calls in more useful high level calls for display control... clearDisplay(), and say(). Cheers, marcus Kind regards, marcus |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 14 Guest(s)