В скетчах arduino используют то #Difine то Int, но в чём их отличие? Читал про них на Вики Амперки там написано, но написано так что я не понял. Объясните по понятней.
char, int, short, long - это типы данных. Запись вида "тип_данных название_переменной" объявляет переменную заданного типа. А define нужен для тупой подстановки. #define x 5 - компилятор повсюду вставит 5 вместо x. Нельзя будет написать x=8, т.к. компилятор поймет это как 5=8. Вики читать хорошо, но и книжки по программированию не повредят.
int это переменая которая может хранить всякие цифры 1,2,3,4...345,346,347,....20005. например благодаря int и циклу for можно не писать в setup'е очень большое кол-во действующих пинов, а только pinMode (i , OUTPUT). Потом можно благодаря int сделать чтобы светодиод горел набирая яркость (самый бональный пример).
Какие у вас будут проекты, но скорее всего да. Просто int это переменная а #define это подставка номера пина вместо слова и ещё кои-что const int это переменная которая не может изменяться и нужна она в основном вместо #define.
http://citforum.ru/programming/cpp_march/cpp_017.shtml И это не имеет никакого отношения к среде Arduino IDE. Это имеет отношение к языку программирования C/C++. Про него и почитайте что-нибудь, чтобы было понимание всяких базовых вещей.
Если уж до конца, то #define - это макроподстановка. Т.е. некоторый текст подставляется вместо указанного текста. Используется либо для придания осмысленности константам (когда вместо безликой цифры имеем наименование) либо для сокращения объема программы, чтобы вместо повторяющихся вещей ставить короткое имя (например, вместо длинной строковой константы). Например, #define a bbb в тексте программы приведет к тому, что перед собственно процессом компиляции (перевода из кода исходного в машинный) каждое вхождение символа a будет заменено на bbb. Возможны и более сложные макроподстановки, с параметрами. Альтернативное применение #define - управление компиляцией. И все это можно прочитать в любом учебнике по языку C или C++.
Прочитал всё то что написано в вашей ссылке и так и не понял, что означают: char short long signed unsigned float double long double
char тип переменной, размером 1 байт, содержимое которой интерпретируется как целое от 0 до 255 (если signed) или от -128 до 127 (если unsigned). short - то же, но два байта (от 0 до 65535 или от -32768 до 32767) long - то же, но четыре байта (от 0 до 4Г или от -2Г до 2Г) signed - модификатор типа, применяемый к вышеперечисленным целым типам, означает, что число интерпретируется как беззнаковое (от 0 до ... в зависимости от типа) unsigned - модификатор типа, применяемый к вышеперечисленным целым типам, означает, что число интерпретируется как знаковое (от -... до ... в зависимости от типа), т.е. старший бит, установленный в 1 означает, что число отрицательное. В этом случае число хранится в так называемом дополнительном коде. Если после signed или unsigned тип не указан, то считается, что это int, целочисленный тип, разрядность которого зависит от процессора. Для ардуины это 2 байта, как short. float - число с плавающей точкой. Внутренне представлено в виде 0.xxxxxx * E ууу, где E ууу - десятка в степени yyy. Переменная этого типа занимает в памяти 4 байта. double - то же, но почти везде 8 байт, а для ардуины все те же 4 байта. long double - то же, но 10 байт.
Переменная - это область памяти, имеющая имя. По этому имени можно обратиться к этой области памяти. Тип данных определяет размер этой области памяти и ее структуру. int x = 5; - области памяти размером 2 байта присваивается имя x и туда записывается значение 5. int y = x + 5; - в область памяти размером 2 байта по имени y кладется сумма содержимого области памяти x и числа 5. Прочитайте уже первые главы любого учебника по C/C++, там все написано про переменные и типы данных.