1
3
4
5 pinos
6int pulse_1 = 0;
7int pulse_2 = 1;
8 pulse 10% off no pino x
9int pulse_3 = 2;
10int
11 pulse_4 = 3;
12int pulse_5 = 5;
13 hz 50% no pino x
14int pulse_6 = 6;
15int
16 sin_1 = 5;
17int sin_2 = 6;
18 sinusoidal 2 no pino x
19int clk = 13;
20int led_1 =
21 10;
22int led_2 = 11;
23int switchPin
24 = 4;
25
26
27int
28 analog_1 = 0;
29int analog_2 = 0;
30 2
31float x = 0;
32int us = 975;
33int vin = 0;
34int vout = 0;
35boolean fixed_pulse
36 = false;
37
38void setup()
39{
40
41 pinMode(pulse_1, OUTPUT);
42 pinMode(pulse_2, OUTPUT);
43 pinMode(pulse_3,
44 OUTPUT);
45 pinMode(pulse_4, OUTPUT);
46 pinMode(pulse_5, OUTPUT);
47 pinMode(pulse_6,
48 OUTPUT);
49 pinMode(sin_1, OUTPUT);
50 pinMode(sin_2, OUTPUT);
51 pinMode(led_1,
52 OUTPUT);
53 pinMode(led_2, OUTPUT);
54 pinMode(clk, OUTPUT);
55 & LED de monitorizaao
56 pinMode(switchPin, INPUT);
57 2
58 pinMode(7, OUTPUT);
59
60 digitalWrite(7, HIGH);
61}
62
63void
64 loop()
65{
66
67
68 if (digitalRead(switchPin) == LOW)
69 de impulsos
70 {
71
72 digitalWrite(clk, !(digitalRead(clk)));
73
74 digitalWrite(pulse_1, HIGH);
75 digitalWrite(pulse_2, LOW);
76 digitalWrite(pulse_5,
77 !(digitalRead(pulse_5)));
78 digitalWrite(pulse_6, !(digitalRead(pulse_5)));
79
80 digitalWrite(pulse_3, digitalRead(pulse_5));
81 digitalWrite(pulse_4, digitalRead(pulse_6));
82
83 delayMicroseconds(us-55);
84
85
86
87 digitalWrite(clk,
88 !(digitalRead(clk)));
89 digitalWrite(pulse_1, LOW);
90 digitalWrite(pulse_2,
91 HIGH);
92 delayMicroseconds(us);
93
94
95
96
97 digitalWrite(clk, !(digitalRead(clk)));
98 delayMicroseconds(us);
99
100 delay(1);
101
102
103 digitalWrite(clk, !(digitalRead(clk)));
104
105 delayMicroseconds(us);
106
107
108
109 digitalWrite(clk,
110 !(digitalRead(clk)));
111 delayMicroseconds(us);
112
113
114
115
116 digitalWrite(clk, !(digitalRead(clk)));
117 delayMicroseconds(us);
118
119
120
121
122 digitalWrite(clk, !(digitalRead(clk)));
123
124 vin=analogRead(0);
125 delayMicroseconds(us-100);
126
127
128
129
130 digitalWrite(clk, !(digitalRead(clk)));
131 if (!fixed_pulse)
132 us = 500 + vin;
133 delayMicroseconds(us);
134
135
136
137
138 digitalWrite(clk, !(digitalRead(clk)));
139 delayMicroseconds(us);
140
141 delay(1);
142
143
144 digitalWrite(clk, !(digitalRead(clk)));
145
146 delayMicroseconds(us);
147
148
149 }
150 else
151 Gerador de sinusoide PWM + Controlador PWM
152 {
153 x = x + 15;
154 if (x
155 > 628) x = 0;
156 vin = analogRead(0);
157 vout = int(vin / 4);
158 = 255, valor maximo que se pode escrever num porto PWM (8 bit)
159
160 analog_1
161 = int(128 + (vout / 2) * (sin(x / 100)));
162 analog_2 = int(128 + (vout / 2)
163 * (sin(3.14 + x / 100)));
164 analogWrite(sin_1, analog_1);
165 analogWrite(sin_2,
166 analog_2);
167 analogWrite(led_1, vout);
168 analogWrite(led_2,
169 255 - vout);
170
171
172 }
173
174}
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193