
| #include <OneWire.h> | |
| OneWire ds(2); | |
| void setup(void) { | |
| Serial.begin(9600); | |
| } | |
| void loop(void) { | |
| byte i; | |
| byte present = 0; | |
| byte type_s; | |
| byte data[12]; | |
| byte addr[8]; | |
| float celsius, fahrenheit; | |
| if ( !ds.search(addr)) { | |
| Serial.println("No more addresses."); | |
| Serial.println(); | |
| ds.reset_search(); | |
| delay(250); | |
| return; | |
| } | |
| Serial.print("ROM ="); | |
| for( i = 0; i < 8; i++) { | |
| Serial.write(' '); | |
| Serial.print(addr[i], HEX); | |
| } | |
| if (OneWire::crc8(addr, 7) != addr[7]) { | |
| Serial.println("CRC is not valid!"); | |
| return; | |
| } | |
| Serial.println(); | |
| // первый байт определяет чип | |
| switch (addr[0]) { | |
| case 0x10: | |
| Serial.println(" Chip = DS18S20"); | |
| type_s = 1; | |
| break; | |
| case 0x28: | |
| Serial.println(" Chip = DS18B20"); | |
| type_s = 0; | |
| break; | |
| case 0x22: | |
| Serial.println(" Chip = DS1822"); | |
| type_s = 0; | |
| break; | |
| default: | |
| Serial.println("Device is not a DS18x20 family device."); | |
| return; | |
| } | |
| ds.reset(); | |
| ds.select(addr); | |
| ds.write(0x44); | |
| delay(1000); | |
| present = ds.reset(); | |
| ds.select(addr); | |
| ds.write(0xBE); | |
| Serial.print(" Data = "); | |
| Serial.print(present, HEX); | |
| Serial.print(" "); | |
| for ( i = 0; i < 9; i++) { | |
| data[i] = ds.read(); | |
| Serial.print(data[i], HEX); | |
| Serial.print(" "); | |
| } | |
| Serial.print(" CRC="); | |
| Serial.print(OneWire::crc8(data, 8), HEX); | |
| Serial.println(); | |
| int16_t raw = (data[1] << 8) | data[0]; | |
| if (type_s) { | |
| raw = raw << 3; | |
| if (data[7] == 0x10) { | |
| raw = (raw & 0xFFF0) + 12 - data[6]; | |
| } | |
| } else { | |
| byte cfg = (data[4] & 0x60); | |
| if (cfg == 0x00) raw = raw & ~7; // разрешение 9 бит, 93.75 мс | |
| else if (cfg == 0x20) raw = raw & ~3; // разрешение 10 бит, 187.5 мс | |
| else if (cfg == 0x40) raw = raw & ~1; // разрешение 11 бит, 375 мс | |
| } | |
| celsius = (float)raw / 16.0; | |
| fahrenheit = celsius * 1.8 + 32.0; | |
| Serial.print(" Temperature = "); | |
| Serial.print(celsius); | |
| Serial.print(" Celsius, "); | |
| Serial.print(fahrenheit); | |
| Serial.println(" Fahrenheit"); | |
| } |

I apologize if there are errors in the text. I'm not good at English.
| #include "I2Cdev.h" | |
| #include "MPU6050.h" | |
| #define TO_DEG 57.29577951308232087679815481410517033f | |
| #define T_OUT 20 | |
| MPU6050 accel; | |
| float angle_ax; | |
| long int t_next; | |
| float clamp(float v, float minv, float maxv){ | |
| if( v>maxv ) | |
| return maxv; | |
| else if( v<minv ) | |
| return minv; | |
| return v; | |
| } | |
| void setup() { | |
| Serial.begin(9600); | |
| accel.initialize(); | |
| Serial.println(accel.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed"); | |
| } | |
| void loop() { | |
| long int t = millis(); | |
| if( t_next < t ){ | |
| int16_t ax_raw, ay_raw, az_raw, gx_raw, gy_raw, gz_raw; | |
| float ay,gx; | |
| t_next = t + T_OUT; | |
| accel.getMotion6(&ax_raw, &ay_raw, &az_raw, &gx_raw, &gy_raw, &gz_raw); | |
| ay = ay_raw / 4096.0; | |
| ay = clamp(ay, -1.0, 1.0); | |
| if( ay >= 0){ | |
| angle_ax = 90 - TO_DEG*acos(ay); | |
| } else { | |
| angle_ax = TO_DEG*acos(-ay) - 90; | |
| } | |
| Serial.println(angle_ax); // вывод в порт угла поворота вокруг оси X | |
| } | |
| } |

| int trig = 3; | |
| int echo = 4; | |
| int buzz = 11; | |
| int led = 2; | |
| void setup() { | |
| pinMode(trig, OUTPUT); | |
| pinMode(echo, INPUT); | |
| pinMode(buzz, OUTPUT); | |
| Serial.begin(9600); | |
| pinMode(led, OUTPUT); | |
| } | |
| void loop() { | |
| digitalWrite(trig, LOW); | |
| delayMicroseconds(1); | |
| digitalWrite(trig, HIGH); | |
| delayMicroseconds(10); | |
| digitalWrite(trig, LOW); | |
| int t = pulseIn(echo, HIGH); | |
| double s = abs(t * 0.017); | |
| Serial.println(s); | |
| delay(100); | |
| if (s > 90 ){ | |
| tone(buzz, 900); | |
| digitalWrite(led, HIGH); | |
| delay(10); | |
| } | |
| else { | |
| digitalWrite(led,LOW); | |
| noTone(buzz); | |
| delay(10); | |
| } | |
| } |
| #include <TinyGPS++.h> | |
| #include <SoftwareSerial.h> | |
| TinyGPSPlus gps; | |
| #define S_RX 4 // Вывод RX | |
| #define S_TX 3 // Вывод TX | |
| SoftwareSerial SoftSerial(S_RX, S_TX); | |
| void setup(void) { | |
| Serial.begin(9600); | |
| SoftSerial.begin(9600); | |
| } | |
| void loop() { | |
| while (SoftSerial.available() > 0) { | |
| if (gps.encode(SoftSerial.read())) { | |
| if (gps.location.isValid()) { | |
| Serial.print("Latitude = "); | |
| Serial.println(gps.location.lat(), 6); | |
| Serial.print("Longitude = "); | |
| Serial.println(gps.location.lng(), 6); | |
| } | |
| else | |
| Serial.println("Location Invalid"); | |
| if (gps.altitude.isValid()) { | |
| Serial.print("Altitude = "); | |
| Serial.print(gps.altitude.meters()); | |
| Serial.println(" meters"); | |
| } | |
| else | |
| Serial.println("Altitude Invalid"); | |
| if (gps.speed.isValid()) { | |
| Serial.print("Speed = "); | |
| Serial.print(gps.speed.kmph()); | |
| Serial.println(" kmph"); | |
| } | |
| else | |
| Serial.println("Speed Invalid"); | |
| if (gps.time.isValid()) { | |
| Serial.print("Time (GMT) : "); | |
| if(gps.time.hour() < 10) Serial.print("0"); | |
| Serial.print(gps.time.hour()); | |
| Serial.print(":"); | |
| if(gps.time.minute() < 10) Serial.print("0"); | |
| Serial.print(gps.time.minute()); | |
| Serial.print(":"); | |
| if(gps.time.second() < 10) Serial.print("0"); | |
| Serial.println(gps.time.second()); | |
| } | |
| else | |
| Serial.println("Time Invalid"); | |
| if (gps.date.isValid()) { | |
| Serial.print("Date : "); | |
| if(gps.date.day() < 10) Serial.print("0"); | |
| Serial.print(gps.date.day()); | |
| Serial.print("/"); | |
| if(gps.date.month() < 10) Serial.print("0"); | |
| Serial.print(gps.date.month()); | |
| Serial.print("/"); | |
| Serial.println(gps.date.year()); | |
| } | |
| else | |
| Serial.println("Date Invalid"); | |
| if (gps.satellites.isValid()) { | |
| Serial.print("Satellites = "); | |
| Serial.println(gps.satellites.value()); | |
| } | |
| else | |
| Serial.println("Satellites Invalid"); | |
| } | |
| } | |
| } |
Всем здравствуйте мы команда Space team. Сегодня 19-го октября мы стали победителями своего региона. Поздравьте нас с победой)
