O’rnatilgan tizimlar 2-labaratoriya ishi Guruh raqami
Download 0.85 Mb.
|
2-labaratoriya ishi o\'znatilgan tizim
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI KOMPUTER INJINIRING FAKULTETI O’rnatilgan tizimlar 2-labaratoriya ishi Guruh raqami: 213-20 Topshirdi:Tilavov Sunnatillo Qabul qildi: Nurmurodov Javohir Toshkent-2023 1.RGB-yorug‘lik diodi. Impuls kengligining modulyatsiyasi. int pinR = 11; int pinB = 10; int pinG = 9; int potenR; int potenB; int potenG; void setup() { pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); Serial.begin(9600); } void loop() { potenR = map(analogRead(A0), 0, 1023, 0, 255); potenB = map(analogRead(A1), 0, 1023, 0, 255); potenG = map(analogRead(A2), 0, 1023, 0, 255); analogWrite(pinR, potenR); analogWrite(pinB, potenB); analogWrite(pinG, potenG); delay(50); Serial.print(" Red: "); Serial.print(potenR); Serial.print(" Blue: "); Serial.print(potenB); Serial.print(" Green: "); Serial.println(potenG); delay(100); } 2. Bir razryadli yetti segmetli indikator. Arduino MK orqali raqamlarni indikatorga chiqarish. void setup() { // put your setup code here, to run once: Serial.begin(9600); for (int i = 6; i <= 13; i++){ pinMode(i, OUTPUT); } pinMode (5, INPUT); } int array_de_numeros [][8] = { //{6,7,8,9,10,11,12,13} <- equivalencia pines {0,1,1,1,1,0,1,1},//0 {0,0,1,0,0,0,1,0},//1 {0,1,0,1,0,1,1,1},//2 {0,1,1,0,0,1,1,1},//3 {0,0,1,0,1,1,1,0},//4 {0,1,1,0,1,1,0,1},//5 {0,1,1,1,1,1,0,1},//6 {0,0,1,0,0,0,1,1},//7 {0,1,1,1,1,1,1,1},//8 {0,0,1,0,1,1,1,1},//9 }; void muestra(int x){ for (int y=1; y<=100; y++){ for (int j = 0; j <= 7; j++){ digitalWrite(j+6,(array_de_numeros[x][j])); delay(1); digitalWrite(j+6,LOW); } } } void loop() { // put your main code here, to run repeatedly: if (digitalRead(5)== 1){//mantener presionado el boton por medio segundo for (int i = 0; i <= 9; i++){ muestra(i); } } } 3. 7 ta etti segmentli indikatordan tashkil topgan 4 razryadli matrisa. Dinamik aks ettirishni amalga oshirish (Arduinoda). 8x8 yorug‘lik diodili matritsani boshqarish. #define ROW1 13 #define ROW2 12 #define ROW3 11 #define ROW4 10 #define ROW5 9 #define ROW6 8 #define ROW7 7 #define ROW8 6 #define COL1 5 #define COL2 4 #define COL3 3 #define COL4 2 #define COL5 A4 #define COL6 A3 #define COL7 A2 #define COL8 A1 const int row[] = {ROW1, ROW2, ROW3, ROW4, ROW5, ROW6, ROW7, ROW8}; const int col[] = {COL1,COL2, COL3, COL4, COL5, COL6, COL7, COL8}; int A[8][8] = {{1,1,1,1,1,1,1,1}, {1,1,1,0,0,1,1,1}, {1,1,0,1,1,0,1,1}, {1,1,0,1,1,0,1,1}, {1,1,0,0,0,0,1,1}, {1,1,0,1,1,0,1,1}, {1,1,0,1,1,0,1,1}, {1,1,1,1,1,1,1,1}}; void setup() { Serial.begin(9600); for (int i = 2; i <= 13; i++) { pinMode(i, OUTPUT); digitalWrite(i, LOW); } pinMode(A1, OUTPUT); digitalWrite(A1, LOW); pinMode(A2, OUTPUT); digitalWrite(A2, LOW); pinMode(A3, OUTPUT); digitalWrite(A3, LOW); pinMode(A4, OUTPUT); digitalWrite(A4, LOW); } void loop() { delay(10); yaz(A); }
void yaz(int matrix[8][8]){ for (int c=0; c<8; c++){ digitalWrite(col[c], HIGH); for (int r = 0; r < 8; r++){ digitalWrite(row[r], 255*matrix[r][c]); delay(1); } for (int r = 0; r < 8; r++){ digitalWrite(row[r], HIGH); delay(1); } digitalWrite(col[c], LOW); } } 4. 74NS595 suruvchi registr mikrosxemasi. 4 razryadli matrisani boshqarish. const byte SEGMENT_PINS[8] = {9, 8, 7, 6, 2, 3, 4, 5}; const byte POWER_PINS[4] = {10, 11, 12, 13}; const byte SEGMENT_LENGTH = sizeof(SEGMENT_PINS) / sizeof(byte); const byte POWER_LENGTH = sizeof(POWER_PINS) / sizeof(byte); const unsigned int SEGMENTS[8] = { // middle 1 << 0, // top left 1 << 1, // top 1 << 2, // top right 1 << 3, // dot 1 << 4, // bottom right 1 << 5, // bottom 1 << 6, // bottom left 1 << 7 }; const unsigned int DIGITS[10] = { // 0 (SEGMENTS[1] | SEGMENTS[2] | SEGMENTS[3] | SEGMENTS[5] | SEGMENTS[6] | SEGMENTS[7]), // 1 (SEGMENTS[3] | SEGMENTS[5]), // 2 (SEGMENTS[0] | SEGMENTS[2] | SEGMENTS[3] | SEGMENTS[6] | SEGMENTS[7]), // 3 (SEGMENTS[0] | SEGMENTS[2] | SEGMENTS[3] | SEGMENTS[5] | SEGMENTS[6]), // 4 (SEGMENTS[0] | SEGMENTS[1] | SEGMENTS[3] | SEGMENTS[5]), // 5 (SEGMENTS[0] | SEGMENTS[1] | SEGMENTS[2] | SEGMENTS[5] | SEGMENTS[6]), // 6 (SEGMENTS[0] | SEGMENTS[1] | SEGMENTS[2] | SEGMENTS[5] | SEGMENTS[6] | SEGMENTS[7]), // 7 (SEGMENTS[2] | SEGMENTS[3] | SEGMENTS[5]), // 8 (SEGMENTS[0] | SEGMENTS[1] | SEGMENTS[2] | SEGMENTS[3] | SEGMENTS[5] | SEGMENTS[6] | SEGMENTS[7]), // 9 (SEGMENTS[0] | SEGMENTS[1] | SEGMENTS[2] | SEGMENTS[3] | SEGMENTS[5] | SEGMENTS[6]) }; unsigned int x = 0; void setup() { byte length; for (byte i = 0; i < POWER_LENGTH; i++) { pinMode(POWER_PINS[i], OUTPUT); digitalWrite(POWER_PINS[i], LOW); } for (byte i = 0; i < SEGMENT_LENGTH; i++) { pinMode(SEGMENT_PINS[i], OUTPUT); digitalWrite(SEGMENT_PINS[i], HIGH); } } void loop() { x %= 10000; // loop 4 digits for assigning the dot for (byte k = 0; k < POWER_LENGTH; k++) { for (byte j = 0; j < (100 / POWER_LENGTH); j++) { // loop 4 digits unsigned int y = 1; for (byte i = 0; i < POWER_LENGTH; i++) { y *= 10; // set segments to the digit // assign the dot to the digit each 250ms setLED(POWER_PINS[i], DIGITS[(x / (y / 10)) % 10] | ((k == i) ? SEGMENTS[4] : 0)); } // total delay 8ms 4 digits // delay extra 2ms to be 10ms in a period delay(2); } } x++; } void setLED(byte powerPin, unsigned int segmentValue, bool enabled) { digitalWrite(powerPin, enabled ? HIGH : LOW); for (byte i = 0; i < SEGMENT_LENGTH; i++) { if ((segmentValue & SEGMENTS[i]) > 0) { digitalWrite(SEGMENT_PINS[i], enabled ? LOW : HIGH); } } delay(1); } void setLED(byte powerPin, unsigned int segmentValue) { setLED(powerPin, segmentValue, true); setLED(powerPin, segmentValue, false); } //LED TEST w/ 74HC595 //by Amanda Ghassaei 2012 //http://www.instructables.com/id/Multiplexing-with-Arduino-and-the-74HC595/ /*
* it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ //this code will light up each led in the 4x4 matrix one at a time //pin connections- the #define tag will replace all instances of "latchPin" in your code with A1 (and so on) #define latchPin A1 #define clockPin A0 #define dataPin A2 //looping variables byte i; byte j; //storage variable byte dataToSend; void setup() { //set pins as output pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { for (i=0;i<4;i++){ for (j=0;j<4;j++){ //bit manipulation (more info at http://arduino.cc/en/Reference/Bitshift , http://arduino.cc/en/Reference/BitwiseXorNot , and http://arduino.cc/en/Reference/BitwiseAnd) dataToSend = (1 << (i+4)) | (15 & ~(1 << j));//preprare byte (series of 8 bits) to send to 74HC595 //for example when i =2, j = 3, //dataToSend = (1 << 6) | (15 & ~(1 << 3)); //dataToSend = 01000000 | (15 & ~(00001000)); //dataToSend = 01000000 | (15 & 11110111); //dataToSend = 01000000 | (15 & 11110111); //dataToSend = 01000000 | 00000111; //dataToSend = 01000111; //the first four bits of dataToSend go to the four rows (anodes) of the LED matrix- only one is set high and the rest are set to ground //the last four bits of dataToSend go to the four columns (cathodes) of the LED matrix- only one is set to ground and the rest are high //this means that going through i = 0 to 3 and j = 0 to three with light up each led once // setlatch pin low so the LEDs don't change while sending in bits digitalWrite(latchPin, LOW); // shift out the bits of dataToSend to the 74HC595 shiftOut(dataPin, clockPin, LSBFIRST, dataToSend); //set latch pin high- this sends data to outputs so the LEDs will light up digitalWrite(latchPin, HIGH); delay(500);//wait }}} 5. Pezonurlatgich. Pezonurlatgichni boshqarish: tonni o‘zgartirish, davomiligini o‘zgartirish #include #define COLS 16 // Columnas del LCD #define ROWS 2 // Filas del LCD // balanca Beurer GS36 de design Slim na worten 24€ LiquidCrystal lcd(12, 11, 5, 4, 3, 2); double sensorValue=0; double pesoMaximo = 10000; double prescisao = 0.1; void setup() { Serial.begin(9600); lcd.begin(16,2); pinMode(A0, INPUT); pinMode(8, OUTPUT); }
{ lcd.clear(); sensorValue = analogRead(A0); double result = conversion(sensorValue); lcd.print(result); lcd.print(" Kg"); delay(500); if(result>=5000 && result<=10000){ digitalWrite(8, HIGH); }else{
}
{ return sensorValue * pesoMaximo / 1023.0; } 6.Tranzistorning kuchaytirish xususiyatini namoyish etish. Elektryuritgich misolida aylanishini o‘zgartirish. int relay = 8; void setup() { pinMode(relay, OUTPUT); } void loop() {digitalWrite(relay, HIGH); delay(1200); digitalWrite(relay, LOW); delay(1200);} Download 0.85 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling