We are working on a project to display ground speed from a LS20031 GPS on a seven segment LED display. We're using TinyGPS and SoftwareSerial. Our code keeps displaying the errors :
BigLEDwrite:11: error: 'NewSoftSerial' does not name a type
BigLEDwrite.ino: In function 'void setup()':
BigLEDwrite:58: error: 'nss' was not declared in this scope
BigLEDwrite.ino: In function 'void loop()':
BigLEDwrite:92: error: 'nss' was not declared in this scope
What can we do to name NewSoftSerial as a type? And, how can we declare nss?
Here is our code:
We have marked the errors with red. A lot of the code is for the seven segment LED.
#include <NewSoftSerial.h>
#include <TinyGPS.h>
TinyGPS gps;#define PMTK_SET_NMEA_OUTPUT_RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,028\r\n"
#define PMTK_SET_NMEA_UPDATE_1HZ "$PMTK220,2001F\r\n"
#define PMTK_Q_RELEASE "$PMTK605*31\r\n"#define RXPIN 3
#define TXPIN 2
NewSoftSerial nss(RXPIN, TXPIN);//variables
int number[4] = {0,0,0,0};
int del=1;
int velocity=0;//GPS
//int gps1 = power
//int gps4 = ground
int gps3 = 3;//segments
int a = 8;
int b = 13;
int c = A0;
int d = A1;
int e = A2;
int f = A3;
int g = A4;
int p = A5;
//digits
int d4 = 9;
int d3 = 10;
int d2 = 11;
int d1 = 12;
//segment and digit arrays
int segment[7]={a,b,c,d,e,f,g};
int digit[4]={d1,d2,d3,d4};
int H=HIGH;
int L=LOW;int segVal[7]={L,L,L,L,L,L,L};
int ZERO[7]={H,H,H,H,H,H,L};
int ONE[7]={L,H,H,L,L,L,L};
int TWO[7]={H,H,L,H,H,L,H};
int THREE[7]={H,H,H,H,L,L,H};
int FOUR[7]={L,H,H,L,L,H,H};
int FIVE[7]={H,L,H,H,L,H,H};
int SIX[7]={H,L,H,H,H,H,H};
int SEVEN[7]={H,H,H,L,L,L,L};
int EIGHT[7]={H,H,H,H,H,H,H};
int NINE[7]={H,H,H,L,L,H,H};void setup()
{
Serial.begin(9600);
nss.begin(38400);
while(!nss.available()){}
nss.print(PMTK_SET_NMEA_OUTPUT_RMCGGA);
nss.print(PMTK_SET_NMEA_UPDATE_1HZ);
Serial.print("Test of GPS");
pinMode(gps3, INPUT);
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(p, OUTPUT);
digitalWrite(a, L);
digitalWrite(b, L);
digitalWrite(c, L);
digitalWrite(d, L);
digitalWrite(e, L);
digitalWrite(f, L);
digitalWrite(g, L);
digitalWrite(p, L);
digitalWrite(d1,H);
digitalWrite(d2,H);
digitalWrite(d3,H);
digitalWrite(d4,H);
}void loop()
{
while (nss.available())
{
int c = nss.read();
if(gps.encode(c)){
int spd=gps.speed();
Serial.write(spd); // process new gps info here
}
}velocity=134;
for(int v=3; v>=0; v--){
number[v]=velocity % 10;
velocity = velocity / 10;}
for(int d=0; d<4; d++){
switch(d){
case 0:
if(number[0]==0){
digitalWrite(d1,H); digitalWrite(d2,H); digitalWrite(d3,H); digitalWrite(d4,H);
}
else {
digitalWrite(d1,L); digitalWrite(d2,H); digitalWrite(d3,H); digitalWrite(d4,H);
}
break;
case 1:
if(number[0]==0 && number[1]==0){
digitalWrite(d1,H); digitalWrite(d2,H); digitalWrite(d3,H); digitalWrite(d4,H);
}
else {
digitalWrite(d1,H); digitalWrite(d2,L); digitalWrite(d3,H); digitalWrite(d4,H);
}
break;
case 2:
digitalWrite(d1,H); digitalWrite(d2,H); digitalWrite(d3,L); digitalWrite(d4,H);
break;
case 3:
digitalWrite(d1,H); digitalWrite(d2,H); digitalWrite(d3,H); digitalWrite(d4,L);
break;
}numseg(number[d]);
for(int i=0;i<7;i++){
digitalWrite(segment_,segVal*);_
_ }_
_ delay(del);_
_ for(int i=0; i<7; i++){_
_ digitalWrite(segment,L);
}
}
}
void numseg(int n)
{
switch(n)
{
case 0:
for(int i=0;i<7;i++){
segVal=ZERO;
}
break;
case 1:
for(int i=0;i<7;i++){
segVal=ONE;
}
break;
case 2:
for(int i=0;i<7;i++){
segVal=TWO;
}
break;
case 3:
for(int i=0;i<7;i++){
segVal=THREE;
}
break;
case 4:
for(int i=0;i<7;i++){
segVal=FOUR;
}
break;
case 5:
for(int i=0;i<7;i++){
segVal=FIVE;
}
break;
case 6:
for(int i=0;i<7;i++){
segVal=SIX;
}
break;
case 7:
for(int i=0;i<7;i++){
segVal=SEVEN;
}
break;
case 8:
for(int i=0;i<7;i++){
segVal=EIGHT;
}
break;
case 9:
for(int i=0;i<7;i++){
segVal=NINE;
}
break;
}
}
[/quote]*_