ZJH
Published

Enhanced Development Board Compatible with Arduino UNO

A high-performance, enhanced development board that's compatible with Arduino UNO.

AdvancedProtip636
Enhanced Development Board Compatible with Arduino UNO

Things used in this project

Hardware components

UNO PRo
×1

Hand tools and fabrication machines

UNO

Story

Read more

Custom parts and enclosures

2018-05-30_100743_WkBpxpImwK.JPG

Schematics

qq20180828165727_P456ES5we4.JPG

Code

MassduinoUnoPro_Code_Template.ino

C/C++
Template
/* ====================MassduinoUnoPro_Code_Template====================================
  Version: 1.0
  Release: 22 May.20186
  www.inhaos.com

  Hardware: UNO Pro
           UNO Pro adopt Massduino MS-3248P , which wieh TQFP-48 package.
           compare to the UNO , UNO Pro add resource below:
           1, on board 4.096V and 2.048V voltage reference source
           2, 4 CH PWM DAC , max output 4.096V
           3, 5 CH High voltage ADC , max input 32V (Voltage divide ration 1:8)
           4, 3 onboard tach switch
           5, 3 onboard LED

  what this template to do?
          1, enable WDT
          2, switch system clock source to EXT_OSC
          3, initialize new IO pin except standard UNO
          4, defining new pin names except standard UNO
          5, switch analog reference source to AVREF
  ===========================================================================*/
#include <WDT.h>

#define pin_Onboard_LED       13

#define pin_BTN1              29
#define pin_BTN2              30
#define pin_BTN3              32
#define pin_LED1              31
#define pin_LED2              38
#define pin_LED3              39

#define pin_PWM_DAC_CH0       33
#define pin_PWM_DAC_CH1       34
#define pin_PWM_DAC_CH2       36
#define pin_PWM_DAC_CH3       37

#define pin_HV_AIN_CH0        A6
#define pin_HV_AIN_CH1        A7
#define pin_HV_AIN_CH2        A8
#define pin_HV_AIN_CH3        A9
#define pin_HV_AIN_CH4        A11

#define pin_AREF_SOURCE       35
#define fun_SetARF_4096       { digitalWrite ( 35 , HIGH ) ; }
#define fun_SetARF_2048       { digitalWrite ( 35 , LOW ) ; }


void setup() {
  sysClock ( EXT_OSC );               // switch system clock source to 16MHz ext osc
  pinMode ( pin_Onboard_LED, OUTPUT );
  pinMode ( pin_BTN1 , INPUT_PULLUP ) ;
  pinMode ( pin_BTN2 , INPUT_PULLUP ) ;
  pinMode ( pin_BTN3 , INPUT_PULLUP ) ;
  pinMode ( pin_LED1 , OUTPUT ) ;
  pinMode ( pin_LED2 , OUTPUT ) ;
  pinMode ( pin_LED3 , OUTPUT ) ;
  pinMode ( pin_AREF_SOURCE , OUTPUT ) ;

  // initial PWM pin , the PWM resolution 12bit , DAC resolution 1mV .
  pwmMode ( pin_PWM_DAC_CH0, PWM_MODE_NORMAL, PWM_FREQ_FAST, 0 );
  pwmMode ( pin_PWM_DAC_CH1, PWM_MODE_NORMAL, PWM_FREQ_FAST, 0 );
  pwmMode ( pin_PWM_DAC_CH2, PWM_MODE_NORMAL, PWM_FREQ_FAST, 0 );
  pwmMode ( pin_PWM_DAC_CH3, PWM_MODE_NORMAL, PWM_FREQ_FAST, 0 );
  pwmResolution (pin_PWM_DAC_CH0, 12 );
  pwmResolution (pin_PWM_DAC_CH1, 12 );
  pwmResolution (pin_PWM_DAC_CH2, 12 );
  pwmResolution (pin_PWM_DAC_CH3, 12 );

  // initial analog refernce source
  analogReference ( EXTERNAL ) ;      //switch analog reference source to AVREF
  fun_SetARF_4096 ;

  // enabel watchdog
  wdt_enable(WTO_256MS);             // enable the watchdog , period 256mS
}

void loop() {
  wdt_reset();                        // remember to reset the watchdog in main loop if you enabel the watchdog.
  // wdt_disable();                   // disable the watchdog if you do not want it work anymore
  
  digitalToggle ( pin_Onboard_LED ) ;

  digitalWrite ( pin_LED1 , !digitalRead ( pin_BTN1 ) ) ;
  digitalWrite ( pin_LED2 , !digitalRead ( pin_BTN2 ) ) ;
  digitalWrite ( pin_LED3 , !digitalRead ( pin_BTN3 ) ) ;
}

Credits

ZJH
0 projects • 0 followers

Comments