Documente Academic
Documente Profesional
Documente Cultură
AE Problemele
AE Problemele
Lab 5
#include <Encoder.h>
Encoder myEncoder(2,3);
//float value;
int encoder_value;
int in1 = 9;
int in2 = 8;
int in_encoder=2;
void count(void);
void setup()
pinMode(enA,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in_encoder,INPUT);
Serial.begin(9600);
attachInterrupt(2,count,FALLING);
encoder_value=0;
void loop()
digitalWrite(enA,HIGH);
Serial.println("...inainte...");
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
1
analogWrite(enA,200);
delay(100);
encoder_value=analogRead(in_encoder);
Serial.println(encoder_value);
delay(100);
Serial.println("...inapoi...");
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(enA,200);
delay(100);
encoder_value=analogRead(in_encoder);
Serial.println(encoder_value);
delay(100);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
encoder_value=analogRead(in_encoder);
Serial.println(encoder_value);
encoder_value=0;
delay(100);
2
// for(int i=0; i<5; i++)
// {
// analogWrite(enA,228-10*i);
// delay(100);
// encoder_value=analogRead(in_encoder);
// Serial.println(encoder_value);
// delay(100);
// }
// encoder_value=0;
// Serial.println(encoder_value);
//// analogWrite(enA,200);
// delay(100);
// value = myEncoder.read();
// Serial.println("...valoarea inainte...");
// Serial.println(value);
// myEncoder.write(0);
// delay(100);
//
// Serial.println("...inapoi...");
// digitalWrite(in1,LOW);
// digitalWrite(in2,HIGH);
// digitalWrite(enA,HIGH);
// analogWrite(enA,200);
// delay(100);
//
// value=myEncoder.read();
// Serial.println("...valoare inapoi...");
// Serial.println(value);
3
// myEncoder.write(0);
// delay(0);
//
// digitalWrite(in1,LOW);
// digitalWrite(in2,LOW);
// value=myEncoder.read();
// Serial.println("...valoare la oprire...");
// Serial.println(value);
// myEncoder.write(0);
// delay(1000);
void count()
encoder_value++;
Prob 2 lab 6
#include <Encoder.h>
Encoder myEncoder(2,3);
//float value;
int encoder_value;
int in1 = 9;
int in2 = 8;
int in_encoder=2;
void count(void);
4
void setup()
pinMode(enA,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in_encoder,INPUT);
Serial.begin(9600);
attachInterrupt(2,count,FALLING);
encoder_value=0;
void loop()
digitalWrite(enA,HIGH);
Serial.println("...inainte...");
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(enA,200);
delay(100);
encoder_value=analogRead(in_encoder);
Serial.println(encoder_value);
delay(100);
Serial.println("...inapoi...");
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(enA,200);
5
delay(100);
encoder_value=analogRead(in_encoder);
Serial.println(encoder_value);
delay(100);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
encoder_value=analogRead(in_encoder);
Serial.println(encoder_value);
encoder_value=0;
delay(100);
// {
// analogWrite(enA,228-10*i);
// delay(100);
// encoder_value=analogRead(in_encoder);
// Serial.println(encoder_value);
// delay(100);
// }
// encoder_value=0;
// Serial.println(encoder_value);
6
//// analogWrite(enA,200);
// delay(100);
// value = myEncoder.read();
// Serial.println("...valoarea inainte...");
// Serial.println(value);
// myEncoder.write(0);
// delay(100);
//
// Serial.println("...inapoi...");
// digitalWrite(in1,LOW);
// digitalWrite(in2,HIGH);
// digitalWrite(enA,HIGH);
// analogWrite(enA,200);
// delay(100);
//
// value=myEncoder.read();
// Serial.println("...valoare inapoi...");
// Serial.println(value);
// myEncoder.write(0);
// delay(0);
//
// digitalWrite(in1,LOW);
// digitalWrite(in2,LOW);
// value=myEncoder.read();
// Serial.println("...valoare la oprire...");
// Serial.println(value);
// myEncoder.write(0);
// delay(1000);
7
void count()
encoder_value++;
Prob 3 15 noiembrie
int Pwmpin = 9;
void setup()
Serial.begin(9600);
pinMode(Pwmpin, OUTPUT);
TCCR1A = _BV(COM1A1)|_BV(COM1B1);
TCCR1B = _BV(WGM13)|_BV(CS11);
void loop()
float freq = 0;
while(1)
ICR1=count;//frecventa variabila
countt = 16*count;
freq = int(16000000/countt);
OCR1A = int(count/2);
Serial.println(freq);
8
count = 10000;
Pinput = analogRead(A0);
Pinput = (Pinput/0.0113);
count = 10000;
delay(1000);
Prob 4 22 noiembrie a
#include <Wire.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
Servo myservo;
Servo myservo1;
int pos = 0;
int pos1 = 0;
void setup() {
myservo.attach(9);
myservo1.attach(10);
Serial.begin(9600);
lcd.begin();
lcd.backlight();
9
}
void loop() {
myservo.write(pos);
delay(15);
delay(50);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Val2:");
lcd.setCursor(7,1);
lcd.print(pos);
myservo1.write(pos1);
delay(15);
delay(50);
lcd.clear();
lcd.print("Val1:");
lcd.setCursor(7,0);
lcd.print(pos1);
myservo.write(pos);
delay(15);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Val2:");
lcd.setCursor(7,1);
lcd.print(pos);
10
myservo1.write(pos1);
delay(15);
delay(50);
lcd.clear();
lcd.print("Val1:");
lcd.setCursor(7,0);
lcd.print(pos1);
Prob 5 22 noiembrie b
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
Servo myservo;
Servo myservo1;
int pos = 0;
int pos1 = 0;
void setup()
myservo.attach(9);
myservo1.attach(10);
Serial.begin(9600);
lcd.begin();
lcd.backlight();
11
void loop() {
myservo.write(pos);
delay(15);
delay(500);
lcd.clear();
lcd.setCursor(0,1);
lcd.print(pos1);
// { Serial.println(pos1);
// myservo1.write(pos1);
// delay(15);
// }
// delay(500);
//
//
// {
// myservo.write(pos);
// delay(15);
// }
// delay(500);
//
// {
12
// myservo1.write(pos1);
// delay(15);
// }
// delay(500);
//
//
//
Prob 6 Senzor 1
#include <Encoder.h>
Encoder myEncoder(2,3);
float value;
int in1 = 9;
int in2 = 8;
void setup()
pinMode(enA,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
Serial.begin(9600);
void loop()
digitalWrite(enA,HIGH);
13
Serial.println("...inainte...");
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(enA,200);
delay(100);
value = myEncoder.read();
Serial.println("...valoarea inainte...");
Serial.println(value);
myEncoder.write(0);
delay(100);
Serial.println("...inapoi...");
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(enA,HIGH);
analogWrite(enA,200);
delay(100);
value=myEncoder.read();
Serial.println("...valoare inapoi...");
Serial.println(value);
myEncoder.write(0);
delay(0);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
value=myEncoder.read();
Serial.println("...valoare la oprire...");
Serial.println(value);
14
myEncoder.write(0);
delay(1000);
Prob 7 Senzor 2
const int echo = 11;
#define enA 2
#define in1 3
#define in2 4
#define enB 5
#define in3 6
#define in4 7
float duration, s;
void setup() {
pinMode(echo,INPUT);
pinMode(trig,OUTPUT);
pinMode(enB,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(enA,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
Serial.begin(9600);
void loop() {
15
digitalWrite(enB,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
digitalWrite(enA,HIGH);
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(trig,0);
delayMicroseconds(2);
digitalWrite(trig,1);
delayMicroseconds(10);
duration = pulseIn(echo,HIGH);
s = duration * 0.034/2;
Serial.print("Distanta: ");
Serial.println(s);
digitalWrite(trig,0);
delayMicroseconds(2);
digitalWrite(trig,1);
delayMicroseconds(10);
duration = pulseIn(echo,HIGH);
s = duration * 0.034/2;
Serial.print("Distanta: ");
Serial.println(s);
16
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
analogWrite(enB,255-40*i);
delay(200);}
delay(10);
digitalWrite(enB, HIGH);
digitalWrite(trig,0);
delayMicroseconds(2);
digitalWrite(trig,1);
delayMicroseconds(10);
duration = pulseIn(echo,HIGH);
s = duration * 0.034/2;
Serial.print("Distanta: ");
Serial.println(s);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
analogWrite(enA,255-40*i);
17
delay(200);}
digitalWrite(enA, HIGH);
delay(10);
#include <dSPINConstants.h>
byte stepMode=STEP_FS;
float stepsPerSecond=50;
byte dir=FWD;
byte dir1=REV;
float stepsPerSec=500;
void setup()
18
void setOscMode(int oscillatorMode);
// de la Arduino............
void resetDev();
void busyCheck();
void softStop();
void hardStop();
void softHiZ();
void hardHiZ();
long getPos();
void resetPos();
void goHome();
dSPINConfig();
Serial.begin(9600);
19
Serial.println("Dati comanda de pornire");
boardA.resetDev();
void loop()
if (Serial.available() !=0)
Serial.read();
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(stepsPerSecond);
boardA.setFullSpeed(stepsPerSecond);
boardA.run(dir, stepsPerSec);
delay(1000);
void dSPINConfig(void)
boardA.configSyncPin(BUSY_PIN, 0);
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(10000);
boardA.setFullSpeed(10000);
boardA.setAcc(10000);
boardA.setDec(10000);
boardA.setSlewRate(SR_530V_us);
boardA.setOCThreshold(OC_750mA);
boardA.setPWMFreq(PWM_DIV_2, PWM_MUL_2);
boardA.setOCShutdown(OC_SD_DISABLE);
boardA.setVoltageComp(VS_COMP_DISABLE);
20
boardA.setSwitchMode(SW_USER);
boardA.setOscMode(INT_16MHZ_OSCOUT_16MHZ);
boardA.setAccKVAL(255);
boardA.setDecKVAL(255);
boardA.setRunKVAL(255);
boardA.setHoldKVAL(32);
#include <AutoDriver.h>
#include <dSPINConstants.h>
byte stepMode=STEP_FS;
float stepsPerSecond=50;
byte dir=FWD;
float stepsPerSec=500;
void dSPINConfig(void)
boardA.configSyncPin(BUSY_PIN, 0);
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(10000);
boardA.setFullSpeed(10000);
boardA.setAcc(10000);
boardA.setDec(10000);
boardA.setSlewRate(SR_530V_us);
boardA.setOCThreshold(OC_750mA);
boardA.setPWMFreq(PWM_DIV_2, PWM_MUL_2);
21
boardA.setOCShutdown(OC_SD_DISABLE);
boardA.setVoltageComp(VS_COMP_DISABLE);
boardA.setSwitchMode(SW_USER);
boardA.setOscMode(INT_16MHZ_OSCOUT_16MHZ);
boardA.setAccKVAL(255);
boardA.setDecKVAL(255);
boardA.setRunKVAL(255);
boardA.setHoldKVAL(32);
void setup()
// de la Arduino............
22
void resetDev();
void busyCheck();
void softStop();
void hardStop();
void softHiZ();
void hardHiZ();
long getPos();
void resetPos();
void goHome();
dSPINConfig();
Serial.begin(9600);
boardA.resetDev();
void loop()
if (Serial.available() !=0)
Serial.println("Citeste comanda");
23
Serial.read();
Serial.println("Incepe miscarea");
boardA.busyCheck();
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(stepsPerSecond);
boardA.setFullSpeed(stepsPerSecond);
boardA.move(dir, 300);
delay(1000);
boardA.softStop();
delay(1000);
#include <dSPINConstants.h>
byte stepMode=STEP_FS;
float stepsPerSecond=50;
byte dir=FWD;
byte dir1=REV;
float stepsPerSec=500;
void dSPINConfig(void)
boardA.configSyncPin(BUSY_PIN, 0);
boardA.configStepMode(STEP_FS);
24
boardA.setMaxSpeed(10000);
boardA.setFullSpeed(10000);
boardA.setAcc(10000);
boardA.setDec(10000);
boardA.setSlewRate(SR_530V_us);
boardA.setOCThreshold(OC_750mA);
boardA.setPWMFreq(PWM_DIV_2, PWM_MUL_2);
boardA.setOCShutdown(OC_SD_DISABLE);
boardA.setVoltageComp(VS_COMP_DISABLE);
boardA.setSwitchMode(SW_USER);
boardA.setOscMode(INT_16MHZ_OSCOUT_16MHZ);
boardA.setAccKVAL(255);
boardA.setDecKVAL(255);
boardA.setRunKVAL(255);
boardA.setHoldKVAL(32);
void setup()
25
void setVoltageComp(int vsCompMode);
// de la Arduino............
void resetDev();
void busyCheck();
void softStop();
void hardStop();
void softHiZ();
void hardHiZ();
long getPos();
void resetPos();
void goHome();
dSPINConfig();
Serial.begin(9600);
26
boardA.resetDev();
void loop()
if (Serial.available() !=0)
Serial.println("Citeste comanda");
Serial.read();
Serial.println("Incepe miscarea");
boardA.busyCheck();
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(stepsPerSecond);
boardA.setFullSpeed(stepsPerSecond);
boardA.move(dir, 300);
delay(1000);
boardA.softHiZ();
delay(1000);
#include <dSPINConstants.h>
byte stepMode=STEP_FS;
float stepsPerSecond=45;
27
//parametrul pentru directie
byte dir=FWD;
byte dir1=REV;
float stepsPerSec=45;
void dSPINConfig(void)
boardA.configSyncPin(BUSY_PIN, 0);
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(10000);
boardA.setFullSpeed(10000);
boardA.setAcc(10000);
boardA.setDec(10000);
boardA.setSlewRate(SR_530V_us);
boardA.setOCThreshold(OC_750mA);
boardA.setPWMFreq(PWM_DIV_2, PWM_MUL_2);
boardA.setOCShutdown(OC_SD_DISABLE);
boardA.setVoltageComp(VS_COMP_DISABLE);
boardA.setSwitchMode(SW_USER);
boardA.setOscMode(INT_16MHZ_OSCOUT_16MHZ);
boardA.setAccKVAL(255);
boardA.setDecKVAL(255);
boardA.setRunKVAL(255);
boardA.setHoldKVAL(32);
void setup()
28
void setMaxSpeed(float stepsPerSecond);
// de la Arduino............
void resetDev();
void busyCheck();
void softStop();
void hardStop();
void softHiZ();
void hardHiZ();
long getPos();
void resetPos();
29
void goToDir(byte dir, long pos);
void goHome();
dSPINConfig();
Serial.begin(9600);
boardA.resetDev();
void loop()
{ if (Serial.available() !=0)
{ Serial.println("Citeste comanda");
Serial.read();
Serial.println("Incepe miscarea");
boardA.busyCheck();
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(stepsPerSecond);
boardA.setFullSpeed(stepsPerSecond);
boardA.move(dir, 300);
delay(1000);
boardA.softStop();
delay(1000);
boardA.move(dir1,500);
delay(1000);
boardA.softHiZ();
delay(1000);
30
Serial.println("Dati comanda a doua secventa");
#include <dSPINConstants.h>
byte stepMode=STEP_FS;
float stepsPerSecond=50;
byte dir=FWD;
byte dir1=REV;
float stepsPerSec=50;
void setup()
31
void setAccKVAL(byte kvalInput);
// de la Arduino............
void resetDev();
void busyCheck();
void softStop();
void hardStop();
void softHiZ();
void hardHiZ();
long getPos();
void resetPos();
void goHome();
dSPINConfig();
Serial.begin(9600);
boardA.resetDev();
32
// se introduce un caracter de la tastatura
void loop()
if (Serial.available() !=0)
Serial.println("Citeste comanda");
Serial.read();
Serial.println("Incepe miscarea");
boardA.busyCheck();
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(stepsPerSecond);
boardA.setFullSpeed(stepsPerSecond);
boardA.move(dir, 300);
delay(1000);
boardA.softStop();
delay(1000);
boardA.move(dir1,500);
delay(1000);
boardA.softHiZ();
delay(1000);
Serial.println("functioneaza go to la o directie");
boardA.goToDir(FWD,500);
delay(1000);
Serial.println("GATA");
boardA.resetDev();
void dSPINConfig(void)
33
boardA.configSyncPin(BUSY_PIN, 0);// BUSY pin low during operations;
boardA.setDec(10000);
// all in phase.
boardA.setDecKVAL(255);
boardA.setRunKVAL(255);
#include <dSPINConstants.h>
byte stepMode=STEP_FS;
34
//parametrul pentru viteza maxima
float stepsPerSecond=50;
byte dir=FWD;
byte dir1=REV;
float stepsPerSec=50;
unsigned long u;
void setup()
// de la Arduino............
void resetDev();
void busyCheck();
35
void run(byte dir, float stepsPerSec);
void softStop();
void hardStop();
void softHiZ();
void hardHiZ();
long getPos();
void resetPos();
void goHome();
dSPINConfig();
Serial.begin(9600);
boardA.resetDev();
void loop()
if (Serial.available() !=0)
Serial.println("Citeste comanda");
Serial.read();
Serial.println("Incepe miscarea");
36
boardA.busyCheck();
boardA.configStepMode(STEP_FS);
boardA.setMaxSpeed(stepsPerSecond);
boardA.setFullSpeed(stepsPerSecond);
boardA.move(dir, 200);
delay(1000);
boardA.softStop();
delay(1000);
boardA.move(dir1,200);
delay(1000);
boardA.softHiZ();
delay(1000);
Serial.println("functioneaza go to la o directie");
boardA.goToDir(FWD,100);
delay(1000);
Serial.println("GATA");
u=boardA.getParam(ABS_POS);
Serial.println(u);
delay(1000);
boardA.resetDev();
delay(1000);
void dSPINConfig(void)
37
boardA.setMaxSpeed(10000); // 10000 steps/s max
boardA.setDec(10000);
// all in phase.
boardA.setDecKVAL(255);
boardA.setRunKVAL(255);
AccelStepper stepper(AccelStepper::DRIVER,9,8);
void setup()
stepper.setMaxSpeed(1000);
stepper.setAcceleration(200);
38
}
void loop()
if(stepper.distanceToGo()==0)
delay(25);
pos=-pos;
stepper.moveTo(pos);
stepper.run();
void setup()
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(8,LOW);
digitalWrite(8,LOW);
void loop()
digitalWrite(9,HIGH);
delayMicroseconds(350);
digitalWrite(9,LOW);
delayMicroseconds(350);
Distance = Distance+1;
39
if(Distance==1000)
if(digitalRead(8)==LOW)
digitalWrite(8,HIGH);
else
digitalWrite(8,LOW);
Distance=0;
delay(150);
int enA=10;
int in1 = 9;
int in2 = 8;
int in3 = 7;
//int in_encoder=2;
//void count(void);
void setup() {
pinMode(enA,OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
// pinMode(in_encoder,INPUT);
Serial.begin(9600);
40
// attachIntrerrupt(2,count,FALLING);
// encoder_value=0;
void loop() {
digitalWrite(enA,HIGH);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
// analogWrite(enA,228-10*i);
// delay(100);
// encoder_value=analogRead(in_encoder);
// delay(100);
// }
// encoder_value=0;
//void count(){
// encoder_value++;
//}
int enB=11;
int in1=9;
int in3=7;
int in2=8;
int in4=6;
int Trig=4;
int Echo=2;
41
long duration;
int distance;
void count(void);
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4,OUTPUT);
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);
Serial.begin(9600);
void loop() {
digitalWrite(enA,LOW);
digitalWrite(enB,LOW);
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
42
duration = pulseIn(Echo, HIGH);
distance = duration*0.034/2;
Serial.println(distance);
// digitalWrite(enA,HIGH);
// digitalWrite(enB,HIGH);
digitalWrite(enA,HIGH);
analogWrite(enB,255-80*i);
delay(100);
Prob 18
43