no message
parent
b0a2fcc7ce
commit
3edb55948a
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
|
||||||
|
int incomedate = 0;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
// put your setup code here, to run once:
|
||||||
|
pinMode(13, OUTPUT);
|
||||||
|
Serial.begin(9600); //设置串口波特率9600
|
||||||
|
Serial.println(78, BIN);// "1001110"
|
||||||
|
Serial.println(78, OCT);// "116"
|
||||||
|
Serial.println(78, DEC);// "78"
|
||||||
|
Serial.println(78, HEX);// "4E"
|
||||||
|
Serial.println(1.23456, 0);// "1"
|
||||||
|
Serial.println(1.23456, 2);// "1.23"
|
||||||
|
Serial.println(1.23456, 4);// "1.2346"
|
||||||
|
Serial.println('N');// "N"
|
||||||
|
Serial.println("Hello world.");// "Hello world."
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
// put your main code here, to run repeatedly:
|
||||||
|
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
|
||||||
|
delay(1000); // wait for a second
|
||||||
|
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
|
||||||
|
delay(1000); // wait for a second
|
||||||
|
if (Serial.available() > 0)//串口接收到数据
|
||||||
|
{
|
||||||
|
incomedate = Serial.read();//获取串口接收到的数据
|
||||||
|
if (incomedate == 'H')
|
||||||
|
{
|
||||||
|
Serial.println("Good Job!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,57 +0,0 @@
|
||||||
/*
|
|
||||||
Stepper Motor Control - one revolution
|
|
||||||
This program drives a unipolar or bipolar stepper motor.
|
|
||||||
The motor is attached to digital pins 8 - 11 of the Arduino.
|
|
||||||
The motor should revolve one revolution in one direction, then
|
|
||||||
one revolution in the other direction.
|
|
||||||
Created 11 Mar. 2007
|
|
||||||
Modified 30 Nov. 2009
|
|
||||||
by Tom Igoe
|
|
||||||
*/
|
|
||||||
#include <Stepper.h>
|
|
||||||
#include <Servo.h>
|
|
||||||
|
|
||||||
const int stepsPerRevolution = 20; // change this to fit the number of steps per revolution
|
|
||||||
// for your motor
|
|
||||||
Servo myservo; // create servo object to control a servo
|
|
||||||
|
|
||||||
// initialize the stepper library on pins 8 through 11:
|
|
||||||
|
|
||||||
#define CLK 10
|
|
||||||
#define CW 9
|
|
||||||
#define EN 8
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
// set the speed at 60 rpm:
|
|
||||||
pinMode(CLK,OUTPUT);
|
|
||||||
pinMode(CW,OUTPUT);
|
|
||||||
pinMode(EN,OUTPUT);
|
|
||||||
// initialize the serial port:
|
|
||||||
Serial.begin(115200);
|
|
||||||
digitalWrite(EN,LOW);
|
|
||||||
myservo.attach(12); // attaches the servo on pin 9 to the servo object
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
char data[20] = {0};
|
|
||||||
digitalWrite(EN,LOW);
|
|
||||||
|
|
||||||
// step one revolution in one direction:
|
|
||||||
if(Serial.available()){ //if number of bytes (characters) available for reading from {
|
|
||||||
Serial.readBytes(data,20);
|
|
||||||
Serial.print("I received:"); //print I received
|
|
||||||
Serial.write(data); //send what you read
|
|
||||||
String strInt = data; // string to hold input
|
|
||||||
int ints = strInt.toInt();
|
|
||||||
Serial.print(ints); //print I received
|
|
||||||
myservo.write(ints); // sets the servo position according to the scaled value
|
|
||||||
for(int cnt = 0;cnt < ints;cnt++){
|
|
||||||
delay(100);
|
|
||||||
digitalWrite(EN,LOW);
|
|
||||||
delay(100);
|
|
||||||
digitalWrite(EN,HIGH);
|
|
||||||
|
|
||||||
}
|
|
||||||
ints = 0;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
#include "ModBusSlave0.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define TRANSMIT_PIN 6
|
||||||
|
#define MODBUS_ADDRESS 100
|
||||||
|
|
||||||
|
ModBusSlave0 mod(false);
|
||||||
|
|
||||||
|
ISR(USART0_RX_vect)
|
||||||
|
{
|
||||||
|
mod.receiveHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
ISR(USART0_TX_vect)
|
||||||
|
{
|
||||||
|
mod.transmitHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t get_addr(uint16_t addr){
|
||||||
|
switch(addr){
|
||||||
|
case 1:
|
||||||
|
return 1;
|
||||||
|
default:
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t prepareResponse03(uint8_t *frame, uint8_t* data) {
|
||||||
|
if(frame[1] == 0x03){
|
||||||
|
uint16_t addr = uint16_t(frame[2])*256 + uint16_t(frame[3]);
|
||||||
|
uint16_t len = uint16_t(frame[4])*256 + uint16_t(frame[5]);
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while(len --){
|
||||||
|
data[i] = (get_addr(addr + i/2)&0xff00)>>8;
|
||||||
|
data[i + 1] = get_addr(addr + i/2)&0x00ff;
|
||||||
|
i +=2 ;
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
if(frame[1] == 0x06){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
mod.begin(57600, TRANSMIT_PIN, MODBUS_ADDRESS);
|
||||||
|
mod.prepareResponse03 = *prepareResponse03;
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
mod.process();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue