/*TFT 160 X 128 AND THE MICROCONTROLLER EITHER A Nano or Uno R3 * * WIRING CONNECTIONS TO THE tft * * TFT pinout information The VCC Pin is not used LED = 3.3 Volts DC SCK = Pin D13 SDA = Pin D11 AO = Pin D9 Reset = Pin D8 CS = Pin D10 GND = Ground Vcc = Not Used */ #include #include #include // Hardware-specific library #if defined(__SAM3X8E__) #undef __FlashStringHelper::F(string_literal) #define F(string_literal) string_literal #endif #define __CS 10 #define __DC 9 #define __RST 8 // Color definitions #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF Adafruit_ST7735 display = Adafruit_ST7735(__CS, __DC, __RST); #include "Wire.h" int RunOnce = 1; int backlight =0; int i = 0; const int SENSOR = 0; // Analog Pin A0 for the S Meter function int val = 0; int adcval = A6; // Analog Pin A6 for the S Meter function int buttonState = 0; int lastButtonState = 0; void setup() { Serial.begin(9600); //display.begin(); display.initR(INITR_BLACKTAB); display.setRotation(1); // landsacape versus portrait pinMode(A6,INPUT); digitalWrite(A6, LOW); // S Meter reading display.fillScreen(BLACK); } // *************************** MAIN LOOP *********************** void loop(){ // SplashScreen(); // RunOnce = 0; CheckDisplay(); } //***********************************Display ************************************************************************************************************ void CheckDisplay(){ display.setCursor(2,95); display.println("S Mtr"); display.setTextColor(0xF820); display.setCursor(15,24); display.println("Linear Scale Meter Face"); display.setCursor(3,115); display.println("Arduino Based Meter Faces"); display.drawRect(10,6,146,30,GREEN); for(int i = 0; i < 18; i++) { // A Trick to add "Tick Marks" display.fillRect(12 + 10* i,8,1,5,WHITE);} //linera meter scale display.drawRect(10,52,146,24,WHITE); for(int i = 1; i < 5; i++) { // A Trick to add "Tick Marks" display.fillRect( 14+abs(100*log( i)),54,1,6,RED); } display.setTextColor(0xF820); display.setCursor(20,64); display.setTextColor(YELLOW); display.println("LOG Scale Meter Face"); display.drawRect(35,90,125,20,0xF820); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(98,80); display.print("S9"); for(int i = 0; i < 14; i++) { // A Trick to add "Tick Marks" to the S Meter display.fillRect(185 -(37 + 30*sqrt( i)),92,1,5,WHITE); } } /* // ************* CHECK S METER*********************** void CheckSM(){ adcval = analogRead(A6); //S meter routine val= 6*log(abs(adcval-100)/1); display.fillRect(38,99, val,4, YELLOW); delay(20); } */ //****************** Run Once ************************ void SplashScreen() { // Fun with Run Once Splash Screens if (RunOnce == 1) { display.setTextColor(YELLOW); display.fillScreen(BLACK); display.setCursor(50, 10); display.setTextSize(3); display.println("N6QW"); display.setCursor(40,45); display.setTextSize(1); display.setTextColor(RED); display.setCursor(50, 50); display.println("Illegitimus"); display.setCursor(40, 65); display.println("Non-Carborundum"); delay(1000); display.fillScreen(BLACK); display.setTextColor(YELLOW); display.setTextSize(3); display.setCursor(50,10); display.println("N6QW"); display.setTextSize(1); display.setCursor(40 , 45); display.print("Genius at Work!"); display.setCursor(1, 60); display.println("Simpleceiver 40M 2 VFO Rig"); display.setCursor(20,80); display.print("KNACKER's == Know How!"); display.setCursor(2,105); display.print(" www.n6qwradiogenius.us"); delay(1000); display.fillScreen(BLACK); display.setTextColor(YELLOW); display.setTextSize(2); display.setCursor(35,30); display.println("SEABEE's"); display.setCursor(37,60); display.println("Can Do!"); delay(800); RunOnce = 0; display.fillScreen(BLACK); } }