当前位置:首页 > 科学研究 > 电子编程 > 正文内容

Arduino Programming Basic - Data Type

RonWang2年前 (2024-04-23)电子编程912

Arduino 程序基础,介绍Arduino程序的基本组成,第一部分编写了10个例子,关于变量及变量名称,串口监视器,if循环,for循环,while循环等。第二部分介绍了函数,全局变量,局部变量和静态变量,数据类型,Bollean运算,注释语句等。

Data Type C and arduino program

数据类型

boolean 占用内存(字节)1,范围: 0或1

char       占用内存(字节)1,范围: -128~+128

byte       占用内存(字节)1,范围: 0~255

int          占用内存(字节)2,范围: -32768~+32767

unsigned int   占用内存(字节)2,范围: 0~+65536

long       占用内存(字节)4,范围: -2147483648~+2147483647

unsigned long  占用内存(字节)4,范围: 0~+4294967295

float       占用内存(字节)4,范围:-3.4028235E+38~+-3.4028235E+38

double   占用内存(字节)4,和float 一样

int 整型数据 

int ledpin=10;

float 浮点数据 

f=c*9/5 +32

float centToFaren(float c)
{
float f= c*9.0/5.0+32.0 ;
return f;
}

char 字符型数据

char ch='A';
printf("The number of %c is  %d . \n" ,ch ,ch);

String 字符串

char site[7] = {'A', 'U', 'T', 'A', 'B', 'A', '\0'};  // use ' define 

 
char site[] = "AUTABA";   // use " define

Array 数组 

char name[ ]= { "Tom", "Jimmy","Linda","Ron" };
int  score[ ]= {99,100,95,89};


定义整型数组( Save Our Souls - "SOS" Code  3-1):

int durations[] = {200,200,200,500,500,500,200,200,200};

int ledPin = 13 ;
int durations[] = {200,200,200,500,500,500,200,200,200};
void setup()
{
 Serial.begin(9600);
 for ( int i=0; i<9; i++)
 { 
      Serial.println(durations[i]);
}
}
void loop( ) 
{
}

Arduino Array

调用字符数组的内容  3-1a

int ledPin = 13 ;
int durations[] = {200,200,200,500,500,500,200,200,200};
void setup()
{
  pinMode(ledPin,OUTPUT);
}

void loop( ) 
{
for ( int i=0; i<9; i++)
  { 
      flash(durations[i]);
   }
delay(1000);
}

void flash(int delayPeriod)
{
  digitalWrite(ledPin,HIGH);
  delay(delayPeriod);
  digitalWrite(ledPin,LOW);
  delay(delayPeriod);
}

字符串 3-2

const int dotDelay = 200;
const int ledPin = 13;
char* letters[] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..",
// A-I
".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.",
// J-R
"...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."
// S-Z
};
char* numbers[] = {"-----", ".----", "..---", "...--", "....-",
".....", "-....", "--...", "---..", "----."};
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
   char ch;
   if (Serial.available() > 0)
   {
    ch = Serial.read();
    if (ch >= 'a' && ch <= 'z')
     {
      flashSequence(letters[ch - 'a']);
     }
    else if (ch >= 'A' && ch <= 'Z')
     {
      flashSequence(letters[ch - 'A']);
     }
    else if (ch >= '0' && ch <= '9')
     {
      flashSequence(numbers[ch - '0']);
     }
    else if (ch == ' ')
     {
      delay(dotDelay * 4); // gap between words
     }
    }
}
void flashSequence(char* sequence)
{
   int i = 0;
   while (sequence[i] != '\0')
   {
    flashDotOrDash(sequence[i]);
    i++;
    }
   delay(dotDelay * 3); // gap between letters
}
void flashDotOrDash(char dotOrDash)
{
   digitalWrite(ledPin, HIGH);
   if (dotOrDash == '.')
   {
    delay(dotDelay);
    }
   else // must be a -
    {
     delay(dotDelay * 3);
     }
digitalWrite(ledPin, LOW);
delay(dotDelay); // gap between flashes
}

Enumeration and pointer data 枚举和指针数据

枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。

定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增。


如果不使用枚举定义一组星期的别名如下


#define MON  1
#define TUE  2
#define WED  3
#define THU  4
#define FRI  5
#define SAT  6
#define SUN  7

使用枚举定义

enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};

指针数据

 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。

正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。


#include <stdio.h>
 
int main ()
{
    int var_runoob = 10;
    int *p;              // 定义指针变量
    p = &var_runoob;
 
   printf("var_runoob 变量的地址: %p\n", p);
   return 0;
}


版权声明:本文为原创文章,版权归donstudio所有,欢迎分享本文,转载请保留出处!

本文链接:http://www.autabarc.com/?id=248

标签: Arduino

相关文章

Arduino Project 024 -  LCD Temperature Display

Arduino Project 024 - LCD Temperature Display

This project is a simple demonstration of using an LCD to present useful information to the user—in...

Books Exploring Arduino

Books Exploring Arduino

Exploring Arduino uses the popular Arduino microcontroller platform as an instrument to teach topics...

Arduino Project 031 - Digital Pressure Sensor

Arduino Project 031 - Digital Pressure Sensor

Arduino Programming Basic -- Pressure SensorsProject 31 – Digital Pressure Sensor// Ardunio&nbs...

C语言调试运行环境TurboC的安装

C语言调试运行环境TurboC的安装

上大学时学习《C语言程序设计》(第二版)作者谭浩强,大部分编程时间是在学校机房度过,每次点开桌面的TurboC图标,就开始在里面敲代码,然后保存程序Abc.C,下一步进行编译,如果编译成功的话,就可以...

Arduino Project 021 -  LED Dot Matrix Display - Scrolling Message

Arduino Project 021 - LED Dot Matrix Display - Scrolling Message

There are many different ways to drive LEDs. Using shift registers is one way and they have their a...

Arduino Project 010 - Serial Controlled Mood Lamp

Arduino Project 010 - Serial Controlled Mood Lamp

For Project 10, you will revisit the circuit from Project 8 — RGB Mood Lamp, but you’ll now delve in...