147 digitalWrite(
REDLED, HIGH);
148 digitalWrite(
PWMPIN, LOW);
151 analogReference(EXTERNAL);
153 digitalWrite(
PWMPIN, LOW);
159 An0 = analogRead(A0);
160 An1 = analogRead(A1);
161 An2 = analogRead(A2);
163 if (!(
An0 > 120 &&
An1 > 120 &&
An2 > 120))
165 int alertStatus = digitalRead(
ALERTPIN);
168 alertStatus = digitalRead(
ALERTPIN);
215 if (!(
An0 > 120 &&
An1 > 120 &&
An2 > 120))
220 unsigned long currentTime = millis();
229 digitalWrite(
REDLED, LOW);
231 An0 = analogRead(A0);
232 An1 = analogRead(A1);
233 An2 = analogRead(A2);
246 An0 = analogRead(A0);
247 An1 = analogRead(A1);
248 An2 = analogRead(A2);
250 prev_switch_pos = switch_pos;
255 else if (An0 < 120 && An1 > 120 &&
An2 < 120)
257 else if (
An0 > 120 &&
An1 > 120 &&
An2 < 120)
259 else if (
An0 < 120 && An1 < 120 && An2 > 120)
261 else if (
An0 > 120 && An1 < 120 && An2 > 120)
263 else if (An0 < 120 && An1 > 120 &&
An2 > 120)
265 else if (
An0 > 120 &&
An1 > 120 &&
An2 > 120)
272 while (prev_switch_pos != switch_pos);
305 int8_t
write_bytes(uint8_t size, uint8_t byte1, uint8_t byte2, uint8_t byte3)
335 int8_t
read_bytes(uint8_t size, uint8_t byte1, uint8_t byte2, uint8_t byte3)
338 if (size == 250 && byte1 == 1 && byte2 == 1 && byte3 == 1)
342 fault = digitalRead(2);
358 for (x = 0; x < (size - 1); ++
x)
366 for (x = 0; x < size; ++
x)
392 Serial.begin(115200);
394 An0 = analogRead(A0);
395 An1 = analogRead(A1);
396 An2 = analogRead(A2);
398 while (
An0 > 120 &&
An1 > 120 &&
An2 > 120)
400 if (Serial.available() > 0)
407 Serial.print(
"USBSPI,PIC,01,01,DC,DC590,----------------------\r\n");
411 Serial.print(
"LT3965,Cls,D3965,01,01,DC,DC2218A,--------------\r\n");
427 Serial.print(
"HELLO FROM ARDUINO");
470 digitalWrite(
PWMPIN, HIGH);
495 An0 = analogRead(A0);
496 An1 = analogRead(A1);
497 An2 = analogRead(A2);
509 An0 = analogRead(A0);
510 An1 = analogRead(A1);
511 An2 = analogRead(A2);
514 while (
An0 > 120 && An1 < 120 && An2 > 120)
521 digitalWrite(
PWMPIN, HIGH);
526 for (j = 0; j <= 511; j++)
528 An0 = analogRead(A0);
529 An1 = analogRead(A1);
530 An2 = analogRead(A2);
601 An0 = analogRead(A0);
602 An1 = analogRead(A1);
603 An2 = analogRead(A2);
607 while (
An0 < 120 && An1 < 120 && An2 > 120)
614 digitalWrite(
PWMPIN, HIGH);
619 for (
int a = 0; a < 3; a++)
621 An0 = analogRead(A0);
622 An1 = analogRead(A1);
623 An2 = analogRead(A2);
625 int analogStart = 400;
636 for (analog_in = analogStart; analog_in > analogStart - 1; analog_in += increment)
640 An0 = analogRead(A0);
641 An1 = analogRead(A1);
642 An2 = analogRead(A2);
643 ch[0] = (analog_in) - 425;
644 ch[1] = (analog_in) - 450;
645 ch[2] = (analog_in) - 475;
646 ch[3] = (analog_in) - 500;
647 ch[4] = (analog_in) - 525;
648 ch[5] = (analog_in) - 550;
649 ch[6] = (analog_in) - 575;
650 ch[7] = (analog_in) - 600;
652 for (i = 0; i < 8; i++)
656 else if (ch[i] > 255)
658 An0 = analogRead(A0);
659 An1 = analogRead(A1);
660 An2 = analogRead(A2);
669 else if (ch[0] == 255)
685 else if (ch[1] == 255)
701 else if (ch[2] == 255)
717 else if (ch[3] == 255)
733 else if (ch[4] == 255)
749 else if (ch[5] == 255)
765 else if (ch[6] == 255)
781 else if (ch[7] == 255)
791 An0 = analogRead(A0);
792 An1 = analogRead(A1);
793 An2 = analogRead(A2);
794 if (analog_in >= analogMax)
811 int8_t bright = -127;
813 An0 = analogRead(A0);
814 An1 = analogRead(A1);
815 An2 = analogRead(A2);
816 int analog_in = analogRead(A3);
818 while (
An0 > 120 &&
An1 < 120 &&
An2 < 120)
820 An0 = analogRead(A0);
821 An1 = analogRead(A1);
822 An2 = analogRead(A2);
823 analog_in = analogRead(A3);
825 brightness = abs(bright) * 2;
845 delay(analog_in / 20);
864 An0 = analogRead(A0);
865 An1 = analogRead(A1);
866 An2 = analogRead(A2);
867 int analog_in = analogRead(A3);
871 while (An0 < 120 && An1 > 120 &&
An2 < 120)
873 An0 = analogRead(A0);
874 An1 = analogRead(A1);
875 An2 = analogRead(A2);
876 analog_in = analogRead(A3);
878 ch[0] = 250 - (analog_in);
879 ch[1] = 325 - (analog_in);
880 ch[2] = 400 - (analog_in);
881 ch[3] = (analog_in) - 650;
882 ch[4] = (analog_in) - 725;
883 ch[5] = (analog_in) - 800;
886 for (i = 0; i < 6; i++)
890 else if (ch[i] > 255)
914 digitalWrite(
PWMPIN, HIGH);
997 An0 = analogRead(A0);
998 An1 = analogRead(A1);
999 An2 = analogRead(A2);
1000 int analog_in = analogRead(A3);
1025 digitalWrite(
PWMPIN, HIGH);
1032 if (analog_in <= 146)
1038 else if (analog_in > 146 && analog_in <= 292)
1044 else if (analog_in > 292 && analog_in <= 438)
1050 else if (analog_in > 438 && analog_in <= 584)
1056 else if (analog_in > 584 && analog_in <= 730)
1062 else if (analog_in > 730 && analog_in <= 876)
1078 if (analog_in <= 146)
1095 else if (analog_in > 146 && analog_in <= 292)
1112 else if (analog_in > 292 && analog_in <= 438)
1129 else if (analog_in > 438 && analog_in <= 584)
1146 else if (analog_in > 584 && analog_in <= 730)
1163 else if (analog_in > 730 && analog_in <= 876)
1203 while (
An0 > 120 &&
An1 > 120 &&
An2 < 120)
1205 An0 = analogRead(A0);
1206 An1 = analogRead(A1);
1207 An2 = analogRead(A2);
1208 analog_in = analogRead(A3);
1210 if (analog_in <= 146)
1216 else if (analog_in > 146 && analog_in <= 292)
1222 else if (analog_in > 292 && analog_in <= 438)
1228 else if (analog_in > 438 && analog_in <= 584)
1234 else if (analog_in > 584 && analog_in <= 730)
1240 else if (analog_in > 730 && analog_in <= 876)
1264 An0 = analogRead(A0);
1265 An1 = analogRead(A1);
1266 An2 = analogRead(A2);
1269 while (
An0 < 120 && An1 < 120 && An2 > 120)
1271 An0 = analogRead(A0);
1272 An1 = analogRead(A1);
1273 An2 = analogRead(A2);
1277 ch[0] = (analog_in) - 425;
1278 ch[1] = (analog_in) - 450;
1279 ch[2] = (analog_in) - 475;
1280 ch[3] = (analog_in) - 500;
1281 ch[4] = (analog_in) - 525;
1282 ch[5] = (analog_in) - 550;
1283 ch[6] = (analog_in) - 575;
1284 ch[7] = (analog_in) - 600;
1286 for (i = 0; i < 8; i++)
1290 else if (ch[i] > 255)
1378 digitalWrite(
PWMPIN, HIGH);
1385 if ((ch[0] >= j) && (ch[0] > 0))
1390 if ((ch[1] >= j) && (ch[1] > 0))
1395 if ((ch[2] >= j) && (ch[2] > 0))
1400 if ((ch[3] >= j) && (ch[3] > 0))
1405 if ((ch[4] >= j) && (ch[4] > 0))
1410 if ((ch[5] >= j) && (ch[5] > 0))
1415 if ((ch[6] >= j) && (ch[6] > 0))
1420 if ((ch[7] >= j) && (ch[7] > 0))
1436 else if (ch[0] == 255)
1452 else if (ch[1] == 255)
1468 else if (ch[2] == 255)
1484 else if (ch[3] == 255)
1500 else if (ch[4] == 255)
1516 else if (ch[5] == 255)
1532 else if (ch[6] == 255)
1548 else if (ch[7] == 255)
1569 An0 = analogRead(A0);
1570 An1 = analogRead(A1);
1571 An2 = analogRead(A2);
1599 digitalWrite(
PWMPIN, HIGH);
1654 while (
An0 > 120 && An1 < 120 && An2 > 120)
1656 An0 = analogRead(A0);
1657 An1 = analogRead(A1);
1658 An2 = analogRead(A2);
1723 uint8_t ch[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; ;
1724 int ud[16] = {1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
1726 int analog_in = analogRead(A3);
1727 An0 = analogRead(A0);
1728 An1 = analogRead(A1);
1729 An2 = analogRead(A2);
1771 digitalWrite(
PWMPIN, HIGH);
1779 for (j = 0; j < 64; j++)
1781 for (i = 0; i <= 9 ; i++)
1783 for (k = 0; k <= 15; k++)
1787 else if (ud[k] == 0)
1874 analog_in = analogRead(A3);
1875 delay (analog_in / 24);
1879 for (l = 0; l <= 15; l++)
1881 if (ud[l] == 1 && ch[l] >= 250)
1886 else if (ud[l] == 2)
1888 if (waitcount[l] >= 15)
1896 else if (ud[l] == 0 && ch[l] <= 5)
1912 for (j = 0; j < 6; j++)
1914 for (i = 0; i <= 9 ; i++)
1916 for (k = 0; k <= 15; k++)
1920 else if (ud[k] == 0)
2006 analog_in = analogRead(A3);
2007 delay (analog_in / 24);
2011 for (l = 0; l <= 15; l++)
2013 if (ud[l] == 1 && ch[l] >= 250)
2018 else if (ud[l] == 2)
2020 if (waitcount[l] >= 15)
2028 else if (ud[l] == 0 && ch[l] <= 5)
2041 for (i = 0; i < 16; ++
i)
2045 for (i = 0; i < 15; ++
i)
2086 for (j = 0; j < 64; j++)
2088 for (i = 0; i <= 9 ; i++)
2090 for (k = 0; k <= 15; k++)
2094 else if (ud[k] == 0)
2179 analog_in = analogRead(A3);
2180 delay (analog_in / 24);
2184 for (l = 0; l <= 15; l++)
2187 if (ud[l] == 1 && ch[l] >= 250)
2192 else if (ud[l] == 2)
2194 if (waitcount[l] >= 15)
2202 else if (ud[l] == 0 && ch[l] <= 5)
2218 for (j = 0; j < 6; j++)
2220 for (i = 0; i <= 9 ; i++)
2222 for (k = 0; k <= 15; k++)
2226 else if (ud[k] == 0)
2312 analog_in = analogRead(A3);
2313 delay (analog_in / 24);
2317 for (l = 0; l <= 15; l++)
2319 if (ud[l] == 1 && ch[l] >= 250)
2324 else if (ud[l] == 2)
2326 if (waitcount[l] >= 15)
2334 else if (ud[l] == 0 && ch[l] <= 5)
2358 An0 = analogRead(A0);
2359 An1 = analogRead(A1);
2360 An2 = analogRead(A2);
2382 digitalWrite(
PWMPIN, HIGH);
2390 while (An0 < 120 && An1 > 120 &&
An2 > 120)
2392 An0 = analogRead(A0);
2393 An1 = analogRead(A1);
2394 An2 = analogRead(A2);
2421 An0 = analogRead(A0);
2422 An1 = analogRead(A1);
2423 An2 = analogRead(A2);
2450 An0 = analogRead(A0);
2451 An1 = analogRead(A1);
2452 An2 = analogRead(A2);
2468 uint8_t ch[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2470 int ud[16] = {1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1};
2576 digitalWrite(
PWMPIN, HIGH);
2582 for (j = 0; j < 21; j++)
2584 for (i = 0; i <= 4 ; i++)
2586 for (k = 0; k <= 15; k++)
2590 else if (ud[k] == 0)
2677 analog_in = analogRead(A3);
2678 delay (analog_in / 100);
2682 for (l = 0; l <= 15; l++)
2684 if (ud[l] == 1 && ch[l] >= 250)
2689 else if (ud[l] == 2)
2691 if (waitcount[l] >= 15)
2699 else if (ud[l] == 0 && ch[l] <= 5)
2832 for (j = 0; j < 21; j++)
2834 for (i = 0; i <= 4; i++)
2836 for (k = 0; k <= 15; k++)
2840 else if (ud[k] == 0)
2926 analog_in = analogRead(A3);
2927 delay (analog_in / 100);
2931 for (l = 0; l <= 15; l++)
2933 if (ud[l] == 1 && ch[l] >= 250)
2938 else if (ud[l] == 2)
2940 if (waitcount[l] >= 15)
2948 else if (ud[l] == 0 && ch[l] <= 5)
2978 if (tempupdown ==
updown)
static void GraphicUI()
Function to talk to GUI.
static void setup()
Initialize Linduino.
static uint8_t inputByte_0
static void orbit()
LEDs illuminate around the outside of the board, giving the effect of a comet with a tail traveling a...
static int readpot()
Performs an analog read on the potentiometer pin using hysteresis to reduce variation in ADC values...
Header File for Linduino Libraries and Demo Code.
static uint8_t inputByte_2
static void dazzle()
Consecutive LEDs alternate fading up and down.
static uint8_t channel
LTC2305 Channel selection.
#define HARDWARE_I2C_PRESCALER_1
static void wave()
A wave of light from right to left and from left to right changing PWM dimming brightness quickly inc...
void i2c_stop()
Write stop bit to the hardware I2C port.
static int8_t write_bytes(uint8_t size, uint8_t byte1, uint8_t byte2, uint8_t byte3)
Function to write I2C bytes which are received from GUI.
static void loop()
Repeats Linduino loop.
int8_t i2c_start()
Write start bit to the hardware I2C port.
static uint8_t inputByte_1
static int8_t read_bytes(uint8_t size, uint8_t byte1, uint8_t byte2, uint8_t byte3)
Function to read I2C bytes depending on the bytes received from GUI.
union LT_union_int32_4bytes data
#define WITH_NACK
Use with i2c_read(WITH_NACK) to read without an acknowledge.
int8_t i2c_scwriteshort(uint8_t address, uint8_t channel, uint8_t data_SCMREG)
SCMODE Write Command Short Format to write a "value" byte to device at "address". ...
int8_t i2c_write(uint8_t data)
Send a data byte to hardware I2C port.
static void fadewave()
Using the PWM dim WITH FADE commands, a wave of light is created by fading the LED brightnesses up an...
static uint8_t inputByte_3
static void steeringRightAndLeft()
Center headlight LEDs stay on to face directly forward while the right and left side LEDs turn on wit...
LT3965 - Octal Matrix LED Bypass Switch.
static void analogAuto()
Func Desc: All LEDs illuminated to the same brightness level depending on potentiometer value...
int8_t i2c_acwrite(uint8_t address, uint8_t value)
ACMODE Write Command to write a "value" byte to device at "address".
static void sectionalBlanking()
All LEDs are illluminated to full brightness simulating a car with its high-beams turned on...
LT_I2C: Routines to communicate with ATmega328P's hardware I2C port.
static void sidebend()
Func Desc: Varying number of brightened LEDs depending on pot.
static void LT3965_i2c_enable()
int8_t i2c_scwritelong(uint8_t address, uint8_t channel, uint8_t data_SCMREG, uint8_t dimming_value)
SCMODE Write Command Long Format to write 2 "value" bytes to device at "address". ...
uint8_t i2c_read(int8_t ack)
Read a data byte from the hardware I2C port.
void quikeval_I2C_connect(void)
Switch MUX to connect I2C pins to QuikEval connector.
static void analog()
Func Desc: All LEDs lighted up to the same level depending on pot value.
#define WITH_ACK
Use with i2c_read(WITH_ACK) to read with an acknowledge.
static void setThresh()
Sets the short circuit and open circuit thresholds defined for DC2218A.
static void sidebendAuto()
All sixteen LEDs adjust PWM dimming duty cycle and brightness based upon the position of the steering...
static uint8_t inputByte_4