/* NumericDataTypev1 bits bytes, integers,unsigned int long, unsigned long */ //boolean is 1 bit, value of Zero or 1 boolean myBoolean; //Byte value of 0 - 255 CANNOT BE NEGATIVE byte myByte; //int (short for integer) -32,768 to 32,767 int myInt; //unsigned int 0 to 65,535 CANNOT BE NEGATIVE unsigned int myUnsignedInt; // long -2,147,483,648 to 2,147,483,647 long myLong; // unsigned long 0 to 4,294,967,295 CANNOT BE NEGATIVE unsigned long myUnsignedLong; int q; long w; void setup() { // Serial.begin(9600) starts serial communication. 9600bps bits per second = 1200 characters per second Serial.begin(9600); //Send script name Serial.println("NumericDataTypev1..."); //this will print a blank line Serial.println(" "); } void loop() { Serial.println("Byte overflows at 256"); for (q = 0; q < 300; q++) { Serial.print("q: "); Serial.print(q); Serial.print(" myByte: "); Serial.print(myByte); Serial.print(" BIN q: "); Serial.println(myByte, BIN); myByte++; } delay(3000); //reset myByte ready for the next loop myByte = 0; Serial.println("unsigned int overflows at 255"); myUnsignedInt = 65449; for (w = 65450; w < 65600; w++) { myUnsignedInt++; Serial.print("w: "); Serial.print(w); Serial.print(" myUnsignedInt: "); Serial.print(myUnsignedInt); Serial.print(" BIN w: "); //prints the BINARY representation of myUnsignedInt Serial.println(myUnsignedInt, BIN); } delay(3000); Serial.println("");//blank line Serial.println("what happens when an int overruns in a negative direction?"); //what happens when an int overruns in a negative direction? Serial.println(" myInt = -32768 "); myInt = -32768; Serial.println(" myInt = myInt - 1; "); myInt = myInt - 1; // x now contains 32,767 - rolls over in neg. direction Serial.print(" myInt now equals: "); Serial.println(myInt); Serial.println("");//blank line Serial.println("what happens when an int overruns in positive direction?"); //what happens when an int overruns in positive direction? Serial.println(" myInt = 32767 "); myInt = 32767; Serial.println(" myInt = myInt + 1; "); myInt = myInt + 1; // x now contains -32,768 - rolls over Serial.print(" myInt now equals: "); Serial.println(myInt); delay(3000); Serial.println("");//blank line } /* Number size calculations * VERY important when dealing with time * How many seconds in a minute = 60 (byte) How many seconds in an hours = 60 x 60 = 3600 = (Integer) How many seconds in a day = 60 * 60 * 24 = 86400 (long) How many seconds in a year = 60 * 60 * 24 * 365 = 31,536,000 (long) Even for an Arduino a second is a long time, we tend to use milliseconds How many milliseconds in a second = 1000 = integer How many milliseconds in a minute = 60 * 1000 = 60000 = long How many milliseconds in an hours = 60 x 60 * 1000 = 3,600,000 = long How many milliseconds in a day = 60 * 60 * 24 * 1000 = 86,400,000 (long) How many milliseconds in a year = 60 * 60 * 24 * 365 * 1000 = 31,536,000,000 , BIGGER THAN A LONG Millis reaches maximum in about 50 days using an unsigned long microseconds() 1,000,000 per second will run out of space in 70 minutes using unsigned long * */